2013-06-11 9 views
10

Ich möchte alle Instrumente Prozesse, die ausgeführt werden. Ich benutze diese:Kill einen Prozess, wenn es existiert

sudo killall instruments

ich dies in einem Skript bin mit und manchmal wird der Prozess nicht läuft und es hält meinen Skript zu sagen gibt es keine Prozesse mit diesem Namen, die ausgeführt werden.

Wie kann ich prüfen, ob ein bestimmter Prozess läuft? Instrumente in meinem Fall.

+2

'ps ax | grep Instrumente | grep -v grep | wc -l' wäre nicht Null, wenn es einen Prozess mit 'Instrumenten' im Namen gibt. –

Antwort

6

Sie pgrep <proc> verwenden können, für einen Prozess <proc>

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

Wenn Sie 'pgrep' verwenden, könnte auch' pkill' –

+0

@ glennjackman natürlich verwenden, danke! Ich habe gerade gezeigt, wie man nach einem Prozess suchen kann, einen Prozess mit seinem Namen "killall" zu töten sollte ausreichen und der OP weiß es. – giordano

19

Wenn Ihr Skript beendet ist, haben Sie wahrscheinlich set -e, aktiviert Namen zu suchen, um zu beenden, wenn ein Befehl fehlschlägt.

Wenn Sie nicht über den Status kümmern, können Sie einfach anhängen || true auf den Befehl:

sudo killall instruments || true 
Verwandte Themen