Qu’est-ce que la commande nohup sous Linux ? Dans quels cas est-elle utilisée ?
J’ai entendu parler de la commande nohup dans le domaine professionnel. Cette commande est utilisée souvent sous Linux lors de lancement de scripts.
nohup – Exécuter un programme en le rendant insensible aux déconnexions
La syntaxe est la suivante :
nohup COMMAND [ARG]…
nohup OPTION
Rien ne vaut une exemple avec le lancement d’un script shell /tmp/testShell.ksh :
#!/bin/ksh echo "test 1" >> /tmp/testShell.log sleep 10 echo "test 2" >> /tmp/testShell.log sleep 20 echo "test 3" >> /tmp/testShell.log sleep 30 echo "test 4" >> /tmp/testShell.log sleep 40 echo "fin" >> /tmp/testShell.log
Après quelques secondes je ferme mon terminal. J’ouvre un nouveau terminal et je vérifie si le script a continué de tourner :
Nous remarquons que dès que j’ai fermé mon terminal, quand je me suis déconnectée, le script s’est arrêté avant la fin. Ce qui est très problématique.
C’est là que la commande nohup entre en jeu ! Je lance exactement le même script avec nohup, puis je me déconnecte.
Je me reconnecte pour vérifier que le script a continué à tourner :
Je vais vérifier que le fichier de log généré par le script est correct :