2016-07-28 29 views
2

我想通过命令行获取进程的PID,即“cron”。 我试了下面的脚本。如何通过命令行提取进程的PID

ps ax|grep 'cron' 

,但我得到一个表的一部分,

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

我如何提取这个PID?

+2

使用:'pgrep cron' – sat

回答

1

这样,例如:

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

这是一个排除grep进程的快捷方式:'ps -ef | awk'/ [c] ron/{print $ 2}'' –

3

只需使用pidof,而使用其他指令,并在应用它们处理后操作。

$ pidof cron 
22434 

为了让命令只返回一个PID有关的过程,使用-s标志

-s 单次 - 这指示程序只返回一个PID。

1

你可以试试这个;

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

pstree -pas <cronPID> 
3

pgrep实用程序将返回进程ID为当前运行的进程匹配它的参数:

$ pgrep cron 
228 

它也可以用来“grep命令”的事情在命令行上:

$ 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。