如何列出系统上运行的所有进程
“ps命令”是一个很古老的命令,经过多次升级迭代。它可以接收不同语法的选项。
比如:UNIX语法(选项前面是减号-
)
BSD语法(选项前面没有符号)
和GNU语法(选项前有两个减号--
)。
以下命令将显示系统上的所有运行进程。
$ps aux
请注意,这是使用BSD语法(没有破折号)。
A
- 来自所有用户的进程。U
- 显示用户面向的格式(显示有关运行进程的其他信息)。x
- 不属于任何tty的列表进程。
如果有很多进程,可以使用less或者more使输出更易于管理。
$ps aux | less
输出结果中:
USER
- 进程在运行的用户。PID
- 进程ID(每个进程都被分配了一个数字)。%CPU
- 该过程利用的CPU百分比量度。%MEM
- 该过程利用的内存百分比是多少。vsz
- 过程的虚拟内存大小。RSS
- 过程使用的物理内存大小。tty
- 哪个流程(终端屏幕)的过程绑定到,或者没有。stat
- 过程的国家代码;有许多但有些常见的是s
(睡觉)和r
(运行步)。START
- 过程开始时的时间。TIME
- 过程使用的累计CPU时间。COMMAND
- 用于产生运行进程的完整命令。
使用ps命令示例
通常使用以下UNIX语法代替我们上面显示的BSD语法。
它更简洁,更容易阅读。
$ps -ef
-e
- 显示所有用户的运行进程。-f
- 显示全格式列表(显示有关运行进程的其他信息)。
输出结果中,基本和BSD语法相同,只有几列不一样:
UID
- 用户ID,与BSD语法的“USER”相同。ppid
- 父过程的进程ID。C
- CPU利用率,与BSD语法中的“%CPU”相同。Stime
- 开始时间,与BSD语法中的“START”相同。
如果您不需要这么详细信息,只需使用“-e”选项即可。即“ax”选项(BSD语法)。
$ps -e PID TTY TIME CMD 1 ? 00:00:02 systemd 2 ? 00:00:00 kthreadd 3 ? 00:00:00 rcu_gp ........ $ps ax PID TTY STAT TIME COMMAND 1 ? Ss 0:02 /sbin/init splash 2 ? S 0:00 [kthreadd] 3 ? I< 0:00 [rcu_gp]
“PS”最棒的功能之一是我们可以根据所需的任何列排序。
例如,按所使用的内存大小排序:
$ps aux --sort=-%mem | less
或者按CPU利用率排序:
$ps aux --sort=-%cpu | less
检查某个进程是否正在运行,或者查看进程ID:
$ps aux | grep apache2
BSD中的“o”选项,(UNIX -o
选项)允许我们指定我们要查看的列。
$ps axo pid,%cpu,%mem,command | less
示例,使用UNIX语法根据CPU使用情况排序。
$ps -eo pid,ppid,c --sort=-c | less
ps
命令是默认命令行实用程序,它可以为我们提供有关这些进程的许多有用的信息,包括它们的PID(进程ID),TTY,运行命令或者应用程序,以及更多。
日期:2020-07-07 20:56:48 来源:oir作者:oir