2016-07-28 30 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。