J'ai joué avec différentes façons de faire cela en bash, et j'ai trouvé que pgrep program > /dev/null || program
c'était la manière la plus courte / la plus élégante de le faire. Existe-t-il une meilleure méthode que celle-ci?
J'ai joué avec différentes façons de faire cela en bash, et j'ai trouvé que pgrep program > /dev/null || program
c'était la manière la plus courte / la plus élégante de le faire. Existe-t-il une meilleure méthode que celle-ci?
Réponses:
Avec pgrep
, vous pourriez faire correspondre d'autres programmes que le vôtre. Si vous voulez être sûr de faire correspondre le bon programme, utilisez pidof
plutôt.
Vous pouvez également utiliser start-stop-daemon
avec un fichier PID. start-stop-daemon
va vérifier si le programme est en cours d'exécution et le démarrer si nécessaire. C'est ce qui est utilisé dans la plupart des scripts d'initialisation.
/lib/lsb/init-functions
bibliothèque, que la plupart des scripts d'initialisation analysent pour utiliser des fonctions wrapper telles que start_daemon
ou pidofproc
.
[ -z `pidof program` ] || echo "program runing"
# or
[ -z `pidof program` ] && OtherProgram