Ich habe mit verschiedenen Methoden herumgespielt, um dies in Bash zu tun, und ich habe festgestellt pgrep program > /dev/null || program
, dass dies die kürzeste / eleganteste Art ist, dies zu tun. Gibt es eine bessere Methode als diese?
Ich habe mit verschiedenen Methoden herumgespielt, um dies in Bash zu tun, und ich habe festgestellt pgrep program > /dev/null || program
, dass dies die kürzeste / eleganteste Art ist, dies zu tun. Gibt es eine bessere Methode als diese?
Antworten:
Mit pgrep
können Sie andere Programme als nur Ihre abgleichen. Wenn Sie sicher sein möchten, dass Sie das richtige Programm finden, verwenden Sie pidof
stattdessen.
Sie können auch start-stop-daemon
mit einer PID-Datei verwenden. start-stop-daemon
prüft, ob das Programm läuft und startet es bei Bedarf. Dies wird in den meisten Init-Skripten verwendet.
/lib/lsb/init-functions
Bibliothek, die von den meisten Init-Skripten analysiert wird, um Wrapper-Funktionen wie start_daemon
oder zu verwenden pidofproc
.
[ -z `pidof program` ] || echo "program runing"
# or
[ -z `pidof program` ] && OtherProgram