He estado jugando con varias formas de hacer esto en bash, y he descubierto pgrep program > /dev/null || programque es la forma más corta / elegante de hacerlo. ¿Hay un método mejor que este?
8
Con pgrep, puedes combinar otros programas además del tuyo. Si desea asegurarse de que coincida con el programa correcto, use pidofen su lugar.
También puede usar start-stop-daemoncon un archivo PID. start-stop-daemoncomprobará si el programa se está ejecutando y lo iniciará si es necesario. Esto es lo que se usa en la mayoría de los scripts de inicio.
/lib/lsb/init-functionsbiblioteca, que la mayoría de los scripts de inicio analizan para usar funciones de contenedor comostart_daemonopidofproc.fuente