Bash

複雜程序名稱的 pgrep/pidof 用法?

  • May 15, 2012

我正在嘗試使用 pidof 或 pgrep 能夠將 HUP 發送到我係統中的程序。問題是我只想用精確的參數終止程序。

這是“ps awx”的輸出

 657 ?        S      0:00 processname software
 658 ?        S      0:00 processname demo
 659 ?        S      0:00 processname test

通過執行以下操作之一:

pidof processname 
pgrep processname

您將獲得以 processname 開頭的所有程序的列表,但我想做類似的事情:

pidof processname test
pgrep processname test

僅檢索我需要的 PID(在此範例中為 659)

更新

通過在 pgrep 上使用 -f 標誌,只需執行以下操作即可:

pgrep -f "processname test"

你會得到正確的答案。

$ ps aux |grep [d]evio
user01   10220  0.0  0.1   5376  2424 pts/5    S+   11:41   0:00 ssh devio
$ pgrep -f "ssh devio"
10220
$ pkill -0 -f "ssh devio" ; echo $?
0

引用自:https://serverfault.com/questions/389172