it-swarm-eu.dev

Die eleganteste Methode, um zu überprüfen, ob ein Prozess ausgeführt wird, und zu starten, wenn nicht?

Ich habe in Bash auf verschiedene Arten herumgespielt und festgestellt, dass pgrep program > /dev/null || program die kürzeste/eleganteste Art ist, dies zu tun. Gibt es eine bessere Methode als diese?

8
aperson

Mit pgrep stimmen Sie möglicherweise mit anderen Programmen als nur Ihren Programmen überein. Verwenden Sie stattdessen pidof, um sicherzustellen, dass das richtige Programm ausgewählt ist.

Sie können start-stop-daemon auch mit einer PID-Datei verwenden. start-stop-daemon prüft, ob das Programm ausgeführt wird und startet es gegebenenfalls. Dies wird in den meisten Init-Skripten verwendet.

9
ℝaphink
[ -z `pidof program` ] || echo "program runing"
# or 
[ -z `pidof program` ] && OtherProgram 
1
SergioAraujo