Ho pasticciato con vari modi per farlo in bash e ho scoperto pgrep program > /dev/null || program
di essere il modo più breve / elegante per farlo. Esiste un metodo migliore di questo?
Ho pasticciato con vari modi per farlo in bash e ho scoperto pgrep program > /dev/null || program
di essere il modo più breve / elegante per farlo. Esiste un metodo migliore di questo?
Risposte:
Con pgrep
, potresti abbinare altri programmi oltre al tuo. Se vuoi essere sicuro di abbinare il programma giusto, usa pidof
invece.
È inoltre possibile utilizzare start-stop-daemon
con un file PID. start-stop-daemon
controllerà se il programma è in esecuzione e lo avvierà se necessario. Questo è ciò che viene utilizzato nella maggior parte degli script init.
/lib/lsb/init-functions
libreria, che la maggior parte degli script init analizza per usare le funzioni wrapper come start_daemon
o pidofproc
.
[ -z `pidof program` ] || echo "program runing"
# or
[ -z `pidof program` ] && OtherProgram