nohup

Un article de Wikipédia, l'encyclopédie libre.

Nohup est une commande Unix permettant de lancer un processus qui restera actif même après la déconnexion de l'utilisateur l'ayant initiée. Combiné à l'esperluette qui permet le lancement en arrière-plan, nohup permet donc de créer des processus s'exécutant de manière transparente sans être dépendants de l'utilisateur.

[modifier] Fonctionnement

Au moment de la déconnexion d'un utilisateur, le daemon qui détecte cette déconnexion (telnetd, sshd, ...) envoie un signal SIGHUP (signal 1) aux processus enfants, et l'action associée par défaut à ce signal est la fin du processus. nohup va ignorer le signal SIGHUP (d'où son nom) puis exécuter le programme indiqué en ligne de commande, de sorte que celui-ci sera immunisé contre le signal SIGHUP.

[modifier] Exemple

La première ligne de commande ci-dessous démarre le programme mon_programme en tâche de fond de telle façon qu'une déconnexion ne l'arrêtera pas.

$ nohup mon_programme &
$ exit

Cet autre exemple montre comment rediriger la sortie vers un fichier texte autre que nohup.out (défaut).

$ nohup mon_programme > out.file &