ps ( 进程状态 )是一个本机的Unix / Linux实用程序,用于查看有关系统上运行的进程选择的信息:它从/ proc文件系统中的虚拟文件中读取此信息。 它是系统管理专门用于进程监控的重要工具之一,可帮助您了解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格式的进程
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列出用户进程
7.要通过有效的用户ID ( EUID )或名称来选择用户的进程,请使用-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列出过程
要通过PPID选择过程,请键入。
$ ps -f --ppid 1154
通过PPID列出过程
13.使用PID列表进行选择。
$ ps -fp 2226,1154,1146
通过PID列出过程
按TTY显示过程
14.要按tty选择进程,请使用-t标志,如下所示。
$ ps -t pst/0 $ ps -t pst/1 $ ps -ft tty1
按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.以下命令允许您查看进程的PID , PPID ,用户名和命令。
$ ps -eo pid,ppid,user,cmd
列出名称过程
下面是一个自定义输出格式的另一个示例,显示文件系统组,漂亮的值,开始时间和进程的时间。
$ ps -p 1154 -o pid,ppid,fgroup,ni,lstart,etime
列出进程ID信息
$ ps -p 1154 -o comm=
使用PID查找过程
显示家长和子进程
22.要以其名称选择特定进程,请使用-C标志,这也将显示其所有子进程。
$ ps -C sshd
查找父子进程
23.查找进程所有实例的所有PID ,编写需要从std输出或文件读取PID的脚本时很有用。
$ ps -C httpd -o 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上下文
您还可以使用此命令以用户定义的格式显示安全信息。
$ ps -eo euser,ruser,suser,fuser,f,comm,label
用户列出SELinux上下文
使用Watch Utility执行实时过程监控
30.最后,由于ps显示静态信息,您可以使用监视实用程序执行重复输出的实时过程监视,每秒钟后显示,如下面的命令(指定自定义ps命令以实现您的目标)。
$ watch -n 1 'ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head'
实时过程监控
重要提示 :ps只显示静态信息,要查看频繁更新的输出,您可以使用htop等工具; 顶部和扫视 :最后两个其实是Linux系统性能监控工具。
您可能还想阅读以下相关文章。
- 如何在Linux中使用PID号码查找进程名称
- 通过Linux中最高内存和CPU使用情况查找最高运行进程
- 在Linux中终止一个进程的杀死指令,Pkill和Killall命令
- 如何在Linux中查找和杀死运行进程
- 如何在后台启动Linux命令并在终端中分离进程
目前为止就这样了。 如果您有任何有用的ps命令示例来分享(不要忘记说明它的作用),请使用下面的注释表单。