2013-06-11 27 views
10

我想殺死正在運行的所有儀器進程。我用這:殺死一個進程,如果它存在

sudo killall instruments

我在腳本中使用此有時進程未運行,停止我的腳本說有與正在運行的名稱的進程。

如何檢查特定進程是否正在運行?儀器在我的情況。

+2

的'ps -ax | grep的儀器| grep的-v grep的|廁所-l'將非如果名稱中有'instruments'的進程,則爲零。 –

回答

8
sudo killall instruments 2>/dev/null 

是不夠的?

+0

「killall」非常有用=) – IvanM

6

您可以使用pgrep <proc>來搜索一個名爲<proc>

if pgrep instruments &> /dev/null ; then sudo killall instruments ; fi
+4

如果您使用'pgrep',不妨使用'pkill' –

+0

@glennjackman當然,謝謝!我剛剛展示瞭如何搜索一個進程,通過他的名字殺死一個進程「killall」應該足夠了,並且OP知道它。 – giordano

19

如果你的腳本被終止過程中,你最有可能啓用set -e,命令失敗時退出。

如果你不關心的狀態,你可以追加|| true的命令:

sudo killall instruments || true