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 grepes sich selbst zurückgibt.
Wenn some_processes läuft, "1"wird es wiedergegeben, was in Ordnung ist. Wenn some_processes jedoch nicht ausgeführt wird, wird nichts wiedergegeben.
ps -Ccmddamit Prozesse suchen, deren Befehlsname "cmd" ist, wodurch das vollständig beseitigt werden kanngrep.pssetzt den Exit-Code auf einen Wert ungleich Null, wenn kein passender Prozess gefunden wird.