Grep

grep 用於 ps 中的特定程序,但不是 grep 命令本身

  • December 3, 2014

如果我想檢查某些東西是否正在執行,我會這樣做ps aux | grep flamethrower,只是希望顯示flamethrower名稱中包含的程序。這將始終找到至少一個grep flamethrower與此標準匹配的程序。

有沒有辦法以更清潔的方式檢查特定過程?

通常的方法是使用pgrep

$ pgrep init
1
2215
6300
$ ps ax | grep init
   1 ?        Ss     6:41 /sbin/init
2215 ?        Ss     1:54 init --user --restart --state-fd 26
6300 ?        S      0:00 init --user --startup-event indicator-services-start
17522 pts/10   S+     0:00 grep --color=auto init

pgrep請注意,如果您將其與watchand一起使用,您可能還需要使用其他技巧-f

$ watch pgrep init -fa
Every 2.0s: pgrep init -fa                                                                                                                                                                                               
Wed Dec  3 19:19:47 2014

1 /sbin/init
2215 init --user --restart --state-fd 26
6300 init --user --startup-event indicator-services-start
18233 watch pgrep init -fa
18234 watch pgrep init -fa
18235 sh -c pgrep init -fa
$ watch pgrep [i]nit -fa
Every 2.0s: pgrep [i]nit -fa                                                                                                                                                                                           Wed Dec  3 19:20:42 2014

1 /sbin/init
2215 init --user --restart --state-fd 26
6300 init --user --startup-event indicator-services-start

引用自:https://unix.stackexchange.com/questions/171248