nohup

nohup

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.

Fonctionnement

Au moment de la déconnexion d'un utilisateur, le démon 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.

On fera toutefois remarquer que le processus lancé est libre de définir lui-même l'action qu'il désire associer au traitement du signal SIGHUP. En effet, cette immunité est héritée du processus initial nohup vers ses fils (via fork/exec). Si un programme tiers, pour des raisons de design ou de spécification du programme, choisit de ne pas ignorer ce signal, voire de placer son propre gestionnaire à cette fin, alors ce programme tiers ne sera pas protégé contre les fermetures de terminaux, ou en général contre la réception du signal SIGHUP.

Enfin, l'utilisation de nohup oublie souvent des aspects liés aux descripteurs. En effet, la commande nohup s'occupe de rediriger les sortie et erreur standards, mais par contre elle ne fait rien à propos de l'entrée standard. Dans la majorité des premiers usages, lors de la déconnexion du terminal, l'on reçoit un message comme "There are running jobs.", lequel est provoqué par le fait que le processus tiers est toujours lié au terminal par son entrée standard. Cet inconvénient peut être levé en redirigeant explicitement l'entrée standard du processus tiers.

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 &

Voici un exemple avec redirection de l'input standard pour éviter qu'il ne se bloque à la fermeture du terminal.

$ nohup mon_programme 0</dev/null &

Voir aussi


Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article nohup de Wikipédia en français (auteurs)

Игры ⚽ Нужен реферат?

Regardez d'autres dictionnaires:

  • nohup — is a POSIX command to ignore the HUP (hangup) signal, enabling the command to keep running after the user who issues the command has logged out. The HUP (hangup) signal is by convention the way a terminal warns depending processes of logout.… …   Wikipedia

  • Nohup — is a Unix command that is used to run another command while suppressing the action of the HUP (hangup) signal, enabling the command to keep running after the user who issues the command has logged out. It is most often used to run commands in the …   Wikipedia

  • Nohup — UNIX утилита, запускающая указанную команду с игнорированием сигналов потери связи (hangup) и увеличением приоритета для планировщика задач на 5; таким образом, команда будет продолжать выполняться в фоновом режиме и после того, как пользователь… …   Википедия

  • nohup — UNIX утилита, запускающая указанную команду с игнорированием сигналов потери связи (hangup)таким образом, команда будет продолжать выполняться в фоновом режиме и после того, как пользователь выйдет из системы. Если стандартным выводом (stdout)… …   Википедия

  • 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… …   Wikipédia en Français

  • Программы UNIX-подобных операционных систем — Это список популярных программ, работающих в операционных системах основанных на UNIX (POSIX совместимых). Некоторые из этих программ являются стандартными для UNIX подобных систем. Содержание 1 Системный софт 1.1 Общего назначения …   Википедия

  • SIGHUP — Описание: Потеря соединения с терминалом По умолчанию: завершение процесса коды SA SIGINFO (не имеет специфических кодов) В POSIX системах, SIGHUP  сигнал, посылаемый процессу для уведомления о потере соединения с управляющим терминалом …   Википедия

  • GNU Coreutils — GNU Core Utilities Тип Miscellaneous Utilities Разработчик GNU Project Написана на C Операционная система Unix подобные ОС Последняя версия 8.20 (23 октября 2012) …   Википедия

  • Yafc — Infobox Software name = yafc Yet Another FTP Client caption = developer = John Buswell released = ? frequently updated = yes programming language = ? operating system = Linux, UNIX/POSIX language = ? genre = FTP client license = GPL website =… …   Wikipedia

  • GNU Screen — mit Split Screen Basisdaten Aktuelle Version 4.0.3 (7. August 2008) …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”