Ich versuche zu überprüfen, ob ein Prozess (vorausgesetzt, er wird aufgerufen some_process
) auf einem Server ausgeführt wird. Wenn ja, dann Echo 1, andernfalls Echo 0.
Dies ist der Befehl, den ich verwende, der jedoch nur teilweise funktioniert (weitere Informationen unten). Beachten Sie, dass ich das Skript in einer Zeile schreiben muss.
ps aux | grep some_proces[s] > /tmp/test.txt && if [ $? -eq 0 ]; then echo 1; else echo 0; fi
Hinweis: Das [s]
In some_proces[s]
soll verhindern, dass grep
es sich selbst zurückgibt.
Wenn some_process
es läuft, "1"
wird es wiedergegeben, was in Ordnung ist. Wenn some_process
es jedoch nicht ausgeführt wird, wird nichts wiedergegeben.
ps -Ccmd
damit Prozesse suchen, deren Befehlsname "cmd" ist, wodurch das vollständig beseitigt werden kanngrep
.ps
setzt den Exit-Code auf einen Wert ungleich Null, wenn kein passender Prozess gefunden wird.