如何通过命令行提取进程的PID



我想通过命令行获取进程的PID,即"cron"。我尝试了以下脚本。

ps ax|grep 'cron'

但我得到了一张桌子的一部分,

   1427 ?        Ss     0:00 /usr/sbin/cron -f
24160 pts/5    S+     0:00 grep --color=auto cron

如何从中提取pid?

pgrep实用程序将返回当前运行的进程的进程ID,这些进程与其参数匹配:

$ pgrep cron
228

它也可以用于在命令行上"grep for"东西:

$ pgrep -f uerfale
69749
69752
$ pgrep -l -f uerfale
69749 slogin uerfale
69752 slogin: /home/kk/.ssh/sockets/uerfale-9022-kk.sock [mux] m

按名称杀死进程,请使用pkill。它的工作方式与pgrep相同,但将向匹配的进程发送信号,而不是输出进程ID。

只需使用pidof,而不用使用其他命令并对其应用后处理操作。

$ pidof cron
22434

要使命令只返回一个与进程有关的PID,请使用-s标志

-s单次触发-这指示程序只返回一个pid。

像这样,例如:

ps -ef|grep 'cron'|grep -v grep|awk '{print $2}'

你可以试试这个;

ps -o pid,sess,cmd afx | egrep "( |/)cron( -f)?$"

pstree -pas <cronPID>

最新更新