Je suis un débutant dans Ubuntu. J'ai appris une commande
nohup [command]
- courir à l' <command>
abri du signal de raccrochage
Je ne peux pas comprendre la signification de « immunisé contre le signal de raccrochage ». De quel type de signal parle-t-il? Et dites-moi comment utiliser cette commande avec un exemple.
command-line
nohup
coding_ninza
la source
la source
disown
c'est une meilleure alternative ànohup
. Mettez une commande en arrière-plan aveccommand &
ouCtrl-Z
, puis utilisez-ladisown
pour la détacher du shell.Réponses:
Considérons que vous avez ouvert un
gedit
éditeur de texte à partir d'un terminal et que vous y travaillez. Si vous fermez le terminal avant la fermeturegedit
, le gedit se ferme également dès la fermeture du terminal. Que se passe-t-il? Legedit
s'exécute en tant que processus enfant sous le terminal. Lorsque vous fermez le terminal, un signal de raccrochage (SIGHUP
) est envoyé au processus qui tue le processus enfant.D'un autre côté, si vous voulez que votre processus enfant (ici
gedit
) continue de fonctionner même après la fermeture du terminal parent, vous voudriez que votre processus soit immunisé contre le signal de raccrochage. De sorte que la fermeture du terminal ne ferme pas le processus enfant.nohup
fait exactement ce travail.nohup
ne déconnecte pas une commande du terminal , il fait ignorer SIGHUP à votre script et redirige stdout / stderr vers un fichier nohup.out, afin que la commande puisse continuer à s'exécuter en arrière-plan après votre déconnexion. Si vous fermez le shell / terminal ou fermez la session, votre commande n'est plus un enfant de ce shell. Il appartient au processus init. Si vous recherchez dans,pstree
vous verrez qu'il appartient maintenant au processus 1 (init). Cela ne peut pas être ramené au premier plan car le premier plan n'existe plus.la source
Outre ce que @sourvac a écrit, il s'agit d'un héritage de Back In The Day lorsque les gens se connectaient via des terminaux muets uniquement textuels, souvent via le modem (original, 110 bauds): le "raccrocher" est littéralement "raccrocher le téléphone" ".
Un pid insensible au signal de raccrochage continuera de fonctionner même après la déconnexion et le raccrochage du téléphone . Cela était très utile sur les ordinateurs lents lorsque les travaux se déroulaient pendant des heures et des heures et que vous ne pouviez pas rester connecté (quelqu'un d'autre devait utiliser le terminal, vous deviez utiliser le téléphone, l'électricité statique dans la ligne pouvait "bzzt" la connexion , etc).
la source