30有用的“ps命令”示例用于Linux进程监视

ps进程状态 )是一个本机的Unix / Linux实用程序,用于查看有关系统上运行的进程选择的信息:它从/ proc文件系统中的虚拟文件中读取此信息。 它是系统管理专门用于进程监控的重要工具之一,可帮助您了解Linux系统上发生的情况。

它具有操作其输出的众多选项,但是您会发现其中一小部分实用于日常使用。

阅读所有你需要了解Linux中的进程[综合指南]

在本文中,我们将介绍有关在Linux系统上监视主动运行进程的ps命令的30个有用示例。

请注意, ps使用标题行生成输出,表示每列信息的含义,您可以在ps手册页中找到所有标签的含义。

列出当前Shell中的所有进程

1.如果没有任何参数运行ps命令 ,它将显示当前shell的进程。

$ ps 
列出当前运行的进程

列出当前运行的进程

打印不同格式的所有进程

2.以通用(Unix / Linux)格式在Linux系统上显示每个活动进程。

$ ps -A
OR
$ ps -e
以标准格式列出流程

以标准格式列出流程

3.BSD格式显示所有进程。

$ ps au
OR
$ ps axu
列出BSD格式的进程

列出BSD格式的进程

4.要执行全格式列表,请添加-f-F标志。

$ ps -ef
OR
$ ps -eF
以长列表格式列出流程

以长列表格式列出流程

显示用户运行进程

5.您可以选择您拥有的所有进程( ps命令的转轮,在本例中为root),键入:

$ ps -x 

6.要通过实际用户ID( RUID )或名称显示用户的进程,请使用-U标志。

$ ps -fU youcl
OR
$ ps -fu 1000
按ID列出用户进程

按ID列出用户进程

7.要通过有效的用户IDEUID )或名称来选择用户的进程,请使用-u选项。

$ ps -fu youcl
OR
$ ps -fu 1000

打印作为根运行的所有进程(实际和效果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进程

您可以按以下方式通过PID列出进程。

$ ps -fp 1178
通过PID列出过程

通过PID列出过程

要通过PPID选择过程,请键入。

$ ps -f --ppid 1154
通过PPID列出过程

通过PPID列出过程

13.使用PID列表进行选择。

$ ps -fp 2226,1154,1146
通过PID列出过程

通过PID列出过程

按TTY显示过程

14.要按tty选择进程,请使用-t标志,如下所示。

$ ps -t pst/0
$ ps -t pst/1
$ ps -ft tty1
按TTY列出流程

按TTY列出流程

打印过程树

过程树显示系统中的进程如何相互链接; 父类被杀死的进程由init(或systemd)采用。

$ ps -e --forest 
列出流程树

列出流程树

您也可以打印这样一个给定进程的进程树。

$ ps -f --forest -C sshd
OR
$ ps -ef --forest | grep -v grep | grep sshd 
列出进程的树视图

列出进程的树视图

打印过程线程

17.要打印进程的所有线程,请使用-H标志,这将显示LWP轻量级进程 )以及NLWP轻量级进程数 )列。

$ ps -fL -C httpd
列出流程线程

列出流程线程

指定自定义输出格式

使用-o-format选项,ps允许您构建用户定义的输出格式,如下所示。

要列出所有格式说明符,请包括L标志。

$ ps L

19.以下命令允许您查看进程的PIDPPID ,用户名和命令。

$ ps -eo pid,ppid,user,cmd
列出名称过程

列出名称过程

下面是一个自定义输出格式的另一个示例,显示文件系统组,漂亮的值,开始时间和进程的时间。

$ ps -p 1154 -o pid,ppid,fgroup,ni,lstart,etime
列出进程ID信息

列出进程ID信息

21. 使用其PID查找进程名称

$ ps -p 1154 -o comm=
使用PID查找过程

使用PID查找过程

显示家长和子进程

22.要以其名称选择特定进程,请使用-C标志,这也将显示其所有子进程。

$ ps -C sshd
查找父子进程

查找父子进程

23.查找进程所有实例的所有PID ,编写需要从std输出或文件读取PID的脚本时很有用。

$ ps -C httpd -o pid=
查找所有过程PID

查找所有过程PID

24.检查进程的执行时间。

$ ps -eo comm,etime,user | grep httpd

以下输出显示HTTPD服务已运行1小时48分17秒。

查找进程正常运行时间

查找进程正常运行时间

排除Linux系统性能问题

如果您的系统不能正常工作,例如,如果速度异常慢,您可以执行以下系统故障排除

通过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
查找SELinux上下文

查找SELinux上下文

您还可以使用此命令以用户定义的格式显示安全信息。

$ ps -eo  euser,ruser,suser,fuser,f,comm,label
用户列出SELinux上下文

用户列出SELinux上下文

使用Watch Utility执行实时过程监控

30.最后,由于ps显示静态信息,您可以使用监视实用程序执行重复输出的实时过程监视,每秒钟后显示,如下面的命令(指定自定义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中终止一个进程的杀死指令,Pkill和Killall命令
  4. 如何在Linux中查找和杀死运行进程
  5. 如何在后台启动Linux命令并在终端中分离进程

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

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏