网站搜索

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.下面的命令允许您查看进程的PIDPPID、用户名和命令。

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系统性能监控工具。

您可能还想阅读以下相关文章。

  1. 如何在 Linux 中使用 PID 号查找进程名称
  2. 根据 Linux 中内存和 CPU 使用率最高的情况查找运行最多的进程
  3. Linux 中用于终止进程的 Kill、Pkill 和 Killall 命令指南
  4. 如何在 Linux 中查找并终止正在运行的进程
  5. 如何在后台启动 Linux 命令并在终端中分离进程

目前为止就这样了。如果您有任何有用的 ps 命令示例要分享(不要忘记解释它的作用),请使用下面的评论表。