Ho pasticciato con vari modi per farlo in bash e ho scoperto pgrep program > /dev/null || programdi 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 || programdi 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 pidofinvece.
È inoltre possibile utilizzare start-stop-daemoncon un file PID. start-stop-daemoncontrollerà se il programma è in esecuzione e lo avvierà se necessario. Questo è ciò che viene utilizzato nella maggior parte degli script init.
/lib/lsb/init-functionslibreria, che la maggior parte degli script init analizza per usare le funzioni wrapper come start_daemono pidofproc.
[ -z `pidof program` ] || echo "program runing"
# or
[ -z `pidof program` ] && OtherProgram