linux怎么查看某个程序的进程

2 02 2 年,我在某个城市。
那是一个夏日的午后。
我当时正在电脑前做一个项目。
突然遇到一个技术问题,不得不检查进程中的线程状态。
我打开终端,尝试使用ps命令,输入“ps -T”,然后我就惊呆了。
我很困惑,因为我没有意识到遵循了进程号。
后来我意识到应该是“ps-T-p”,然后输入了具体的进程号。
结果屏幕上出现了“SID”和“CMD”两列。
我一看,哦,原来是这样啊。

然后我想知道实时情况,所以我尝试了top命令并输入“top -H”。
命令执行了,但是输出似乎没有我想象的那么直观。
我尝试按“H”键,嘿,它实际上切换了线程视图模式。
然后我想检查特定进程的线程状态,所以我输入“top-H-p”,然后输入进程号。
结果,该进程的所有线程都显示在屏幕上。

当时一头雾水,后来才知道原来Linux下查看线程就是这么简单。
我可能有偏见,认为这个操作太简单了,但回想起来,对于不熟悉的人来说,可能还是需要一段时间。

linux查看进程状态的命令

ps命令是Linux上显示进程状态的基础,-A选项显示全部,-ef显示详细信息,-pPID搜索特定进程。

top命令,实时监控,CPU占用率高,-d5 秒更新,-ungx用户进程选择。

指定 -pPID 以显示 pstree、进程树形状和清晰的关系。

pidstat,资源监控,sysstat打包,-u1 CPU外观。

详细解释了iostat、I/O系统、sysstat中隐藏的-x1 扩展信息。

ps-ef 快,top 实时,pstree 树形,pidstat 深,iostatIO 忙。

Linux如何查看指定端口对应的进程

呵呵,你问这个?上周,一位客户问我如何检查谁拥有 Linux 中的端口。
我直接给了他下面的方法,非常好。

您可以尝试这些命令并基本上执行它:
1 netstat 这是最著名的。
命令 sudo netstat -tulnp | grep:端口号 例如,sudo netstat -tulnp | grep: 8 0,您可以通过查看输出中的 1 2 3 4 / nginx: master 来了解它是哪个进程。
1 2 3 4 是PID,nginx是程序名。
参数: -t:TCP连接 -u:UDP连接 -L:只查看被监控的人 -n:不解析域名,直接显示IP和端口号 -p:显示是哪个程序(即PID和程序名)
2 .这个信息比较完整。
命令是 sudo lsof -i:端口号。
例如sudo lsof -i:8 0,直接搜索输出中的COMMAND列,nginx后面跟着数字PID。
它显示了很多信息,例如该端口已打开多少次、文件描述符等。
仅使用直接 sudo 即可。
端口状态问题:有时进程会挂起,端口会陷入TIME_WAIT或CLOSE_WAIT状态,该状态似乎未被进程使用。
这通常没什么大不了的,只需让系统自行清理即可。
如果赶时间,可以更改内核参数来缩短时间,但不要盲目更改,容易导致错误。
设备更换:在某些较新的系统上,netstat 可能被禁用,而应使用 ss。
SS 更快并且具有类似的命令,例如 sudo ss -tulnp |正则表达式:8 0。
其实ss更有用。
容器问题:如果您在 Docker 内部运行某些内容,您可能无法在外部使用 netstat 或 lsof 查看容器内部的进程。
这种情况就得放到容器里执行命令,或者使用docker ps之类的工具。

如果您找到它并想​​要删除它:
1 首先使用 netstat 或 lsof 查找 PID。
例如, sudo lsof -i:8 0 | awk 'NR==2 {print $2 }',第二行第二个字段是PID。
2 、优雅退出:首先使用kill 1 2 3 4 (1 2 3 4 是PID)给程序一个退出的机会。
3 、硬kill:如果kill不起作用,使用kill -9 1 2 3 4 ,直接杀掉他。
请谨慎使用,否则数据可能会直接丢失。
4 .确认:停止netstat -tulnp | 后再次 grep: 8 0 看看端口是否真的关闭了。

其他工具:
SS:比netstat更强大;受到推崇的。
nmap:可以扫描端口是否开放,检查服务是否存在。
例如,nmap -p8 0 本地主机。
tcpdump:用于数据包捕获和网络问题故障排除。
例如,sudo tcpdump -i any port 8 0 可查看端口 8 0 上的流量。
防火墙:像firewall-cmd (CentOS/RHEL) 或ufw (Ubuntu/Debian) 一样,您可以添加端口。
例如, sudofirewall-cmd --zone=public --add-port=8 0/tcp --permanent,记住 sudofirewall-cmd --reload 将被执行。

无论如何,这取决于你。
这几个命令基本上就够了。

LINUX怎么查看某个进程的详细信息_Linux查看进程详细信息的命令

让我告诉你一件事,当我摆弄服务器时,我真的对这个过程感到困惑。

记得有一年,在杭州,客户突然卡住了,客户吓得跳了起来。
我去看了一下,发现CPU和内存都炸了。
问题一定出在流程上。
使用 ps -p 1 2 3 4 -o pid,ppid,cmd,%mem,%cpu,etime,user 快速运行它。
该进程PID为1 2 3 4 ,CPU使用率9 0%,内存使用率过半,已经运行了快两天了。
顺便说一句,父进程是 1 ,这意味着系统启动时就存在的进程。
但很明显,一份糟糕的工作已经消失了。

后来我用top实时查看,发现是进程在吃CPU。
我还按Shift+P来遍历CPU,这是显而易见的。
客户说Top比PS直观多了,虽然系统此刻几乎卡住了。

还有一次,在成都,我需要找到一个具体的进程,但是我忘记了PID,所以我记得那是一个Python脚本。
我刚pgrep python,突然PID就出来了。
然后我用pstree -p 1 2 3 4 查看了一下,发现子进程是一个大进程。
现在我知道问题是什么了。

但是想要了解最底层的信息,还是要深入系统文件/proc。
当时我有一个同学尝试了cat /proc/1 2 3 4 /status来检查各种进程状态,比如UID、内存使用情况、线程数等,他说这个非常准确。
还有cat /proc/1 2 3 4 /cmdline查看启动命令,cat /proc/1 2 3 4 /environ查看环境变量。
这些可以为您提供超级详细的信息。

哦,我向你推荐的 htop 正在路上。
它非常直观,只需单击鼠标即可将其可视化。
它的颜色也比顶部好得多。
但你必须训练。
如果您使用的是 Debian/Ubuntu,请使用 sudo 安装 htop。
如果您使用的是 CentOS,请使用 sudo yum htop install。
安装这些后,使用 htop,然后按 F3 搜索进程名称。
比山顶舒服多了。

综上所述,在检查进程时,ps、top、htop、/proc、pgrep、pstree这些工具通常可以一起使用。
了解每种工具的重点以及何时使用哪种工具非常重要。
它并不难看,但对于房地产来说确实很有用。