Grep
grep 用於 ps 中的特定程序,但不是 grep 命令本身
如果我想檢查某些東西是否正在執行,我會這樣做
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
請注意,如果您將其與watch
and一起使用,您可能還需要使用其他技巧-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