我想通过命令行获取进程的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>