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 pgrepkönnen Sie andere Programme als nur Ihre abgleichen. Wenn Sie sicher sein möchten, dass Sie das richtige Programm finden, verwenden Sie pidofstattdessen.
Sie können auch start-stop-daemonmit einer PID-Datei verwenden. start-stop-daemonprüft, ob das Programm läuft und startet es bei Bedarf. Dies wird in den meisten Init-Skripten verwendet.
/lib/lsb/init-functionsBibliothek, die von den meisten Init-Skripten analysiert wird, um Wrapper-Funktionen wie start_daemonoder zu verwenden pidofproc.
[ -z `pidof program` ] || echo "program runing"
# or
[ -z `pidof program` ] && OtherProgram