30 个有用的 Linux 进程监控“ps 命令”示例
ps(进程状态)是一个本机 Unix/Linux 实用程序,用于查看有关系统上正在运行的进程选择的信息:它从/中的虚拟文件读取此信息。 proc 文件系统。它是系统管理的重要实用程序之一,特别是在进程监控下,可以帮助您了解 Linux 系统中正在发生的情况。
它有许多用于操作其输出的选项,但是,您会发现其中一小部分对于日常使用实际上很有用。
另请阅读:您需要了解的有关 Linux 进程的所有信息 [综合指南]
在本文中,我们将介绍 30 个有用的 ps 命令示例,用于监视 Linux 系统上活动的运行进程。
请注意,ps 生成带有标题行的输出,该标题行代表每列信息的含义,您可以在 ps 手册页 上找到所有标签的含义。
列出当前 Shell 中的所有进程
1. 如果运行不带任何参数的 ps 命令,它将显示当前 shell 的进程。
ps
以不同格式打印所有流程
2. 以通用 (Unix/Linux) 格式显示 Linux 系统上的每个活动进程。
ps -A
OR
ps -e
3.以BSD格式显示所有进程。
ps au
OR
ps axu
4. 要执行完整格式列表,请添加 -f
或 -F
标志。
ps -ef
OR
ps -eF
显示用户运行进程
5. 您可以选择您拥有的所有进程(ps 命令的运行者,在本例中为 root),输入:
ps -x
6. 要按真实用户 ID (RUID) 或名称显示用户进程,请使用 -U
标志。
ps -fU tecmint
OR
ps -fu 1000
7. 要通过有效用户 ID (EUID) 或名称选择用户进程,请使用 -u
选项。
ps -fu tecmint
OR
ps -fu 1000
打印以 root 身份运行的所有进程(真实有效 ID)
8.下面的命令可以让您以用户格式查看以root用户权限(真实有效ID)运行的每个进程。
ps -U root -u root
显示组进程
9. 如果要列出某个组(真实组 ID (RGID) 或名称)拥有的所有进程,请键入。
ps -fG apache
OR
ps -fG 48
10. 要列出有效组名称(或会话)拥有的所有进程,请键入。
ps -fg apache
按 PID 和 PPID 显示进程
11.您可以按PID列出进程,如下所示。
ps -fp 1178
12. 要按 PPID 选择进程,请键入。
ps -f --ppid 1154
13.使用PID列表进行选择。
ps -fp 2226,1154,1146
按 TTY 显示进程
14.要通过tty选择进程,请使用-t标志,如下所示。
ps -t pts/0
ps -t pts/1
ps -ft tty1
打印进程树
15.进程树显示了系统上的进程如何相互链接;其父进程已被杀死的进程将由 init(或 systemd)采用。
ps -e --forest
16. 您还可以像这样打印给定进程的进程树。
ps -f --forest -C sshd
OR
ps -ef --forest | grep -v grep | grep sshd
打印进程线程
17.要打印进程的所有线程,请使用-L
标志,这将显示LWP(轻量级进程)以及NLWP(轻量级进程的数量)列。
ps -fL -C httpd
指定自定义输出格式
使用 -o 或 --format 选项,ps 允许您构建用户定义的输出格式,如下所示。
18. 要列出所有格式说明符,请包含 L
标志。
ps L
19.下面的命令允许您查看进程的PID、PPID、用户名和命令。
ps -eo pid,ppid,user,cmd
20. 下面是自定义输出格式的另一个示例,显示文件系统组、nice 值、开始时间和进程的运行时间。
ps -p 1154 -o pid,ppid,fgroup,ni,lstart,etime
21. 使用 PID 查找进程名称。
ps -p 1154 -o comm=
显示父进程和子进程
22. 要按名称选择特定进程,请使用 -C 标志,这还将显示其所有子进程。
ps -C sshd
23. 查找进程所有实例的所有PID,在编写需要从 std 输出或文件读取 PID 的脚本时非常有用。
ps -C httpd -o pid=
24.检查进程的执行时间。
ps -eo comm,etime,user | grep httpd
下面的输出显示 HTTPD 服务已运行 1 小时 48 分 17 秒。
Linux 系统性能故障排除
如果您的系统未按应有的方式工作,例如,如果速度异常缓慢,您可以按如下方式执行一些系统故障排除。
26. 根据 Linux 中内存和 CPU 使用率最高的情况查找运行最多的进程。
ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head
OR
ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%cpu | head
27. 终止 Linux 进程/无响应的应用程序或任何消耗大量 CPU 时间的进程。
首先,找到无响应进程或应用程序的 PID。
ps -A | grep -i stress
然后使用kill命令立即终止它。
kill -9 2583 2584
打印安全信息
28. 像这样显示安全上下文(特别是 SELinux)。
ps -eM
OR
ps --context
29. 您还可以使用此命令以用户定义的格式显示安全信息。
ps -eo euser,ruser,suser,fuser,f,comm,label
使用 Watch Utility 执行实时进程监控
30. 最后,由于 ps 显示静态信息,因此您可以使用 watch 实用程序来执行实时进程监控,并具有重复输出,每秒显示一次,如下命令所示(指定自定义 ps 命令来实现您的目标)。
watch -n 1 'ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head'
重要:ps仅显示静态信息,要查看频繁更新的输出,您可以使用htop等工具;顶上,扫了一眼:最后两个其实都是Linux系统性能监控工具。
您可能还想阅读以下相关文章。
- 如何在 Linux 中使用 PID 号查找进程名称
- 根据 Linux 中内存和 CPU 使用率最高的情况查找运行最多的进程
- Linux 中用于终止进程的 Kill、Pkill 和 Killall 命令指南
- 如何在 Linux 中查找并终止正在运行的进程
- 如何在后台启动 Linux 命令并在终端中分离进程
目前为止就这样了。如果您有任何有用的 ps 命令示例要分享(不要忘记解释它的作用),请使用下面的评论表。