如果我想检查某些东西是否正在运行,我会这样做,希望只显示名称中ps aux | grep flamethrower
包含的进程。flamethrower
这将始终找到至少一个grep flamethrower
符合此条件的进程。
有没有某种方法可以检查特定进程清洁工方式?
答案1
通常的方法是使用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