GNU/Linux >> Tutoriels Linux >  >> Linux

Quelle est la différence entre nohup et esperluette

nohup capte le signal de raccrochage (voir man 7 signal ) tandis que l'esperluette ne le fait pas (sauf que le shell est configuré de cette façon ou n'envoie pas SIGHUP du tout).

Normalement, lors de l'exécution d'une commande à l'aide de & et en quittant le shell ensuite, le shell terminera la sous-commande avec le signal de raccrochage (kill -SIGHUP <pid> ). Cela peut être évité en utilisant nohup , car il capte le signal et l'ignore afin qu'il n'atteigne jamais l'application réelle.

Si vous utilisez bash, vous pouvez utiliser la commande shopt | grep hupon pour savoir si votre shell envoie ou non SIGHUP à ses processus enfants. S'il est désactivé, les processus ne seront pas terminés, comme cela semble être le cas pour vous. Vous trouverez plus d'informations sur la façon dont bash termine les applications ici.

Il y a des cas où nohup ne fonctionne pas, par exemple lorsque le processus que vous lancez reconnecte le SIGHUP signal, comme c'est le cas ici.


myprocess.out & exécuterait le processus en arrière-plan à l'aide d'un sous-shell. Si le shell actuel est terminé (par exemple par une déconnexion), tous les sous-shells sont également terminés, de sorte que le processus d'arrière-plan serait également terminé. La commande nohup ignore le HUP signal et donc même si le shell courant est terminé, le sous-shell et myprocess.out continuerait à fonctionner en arrière-plan. Une autre différence est que & seul ne redirige pas le stdout/stderr donc s'il y a une sortie ou une erreur, celles-ci sont affichées sur le terminal. nohup d'autre part redirige le stdout/stderr vers nohup.out ou $HOME/nohup.out .


La plupart du temps, nous nous connectons au serveur distant en utilisant ssh. Si vous démarrez un script shell et que vous vous déconnectez, le processus est tué. Nohup vous aide à continuer à exécuter le script en arrière-plan même après vous être déconnecté du shell.

Nohup command name &
eg: nohup sh script.sh &

Nohup capte les signaux HUP. Nohup ne met pas automatiquement le travail en arrière-plan. Nous devons dire explicitement qu'en utilisant &


Linux
  1. La Différence Entre [[ $a ==Z* ]] Et [ $a ==Z* ] ?

  2. Quelle est la différence entre Git Switch et Checkout ?

  3. Quelle est la différence entre Redhat et centOS ?

  4. Quelle est la différence entre fsck et e2fsck ?

  5. Quelle est la différence entre ls et l ?

Quelle est la différence entre InnoDB et MyISAM ?

Quelle est la différence entre Linux et Unix ?

Quelle est la différence entre la connexion et le shell sans connexion

Quelle est la différence entre la commande apt et apt-get ?

Qu'est-ce qu'un Hyperviseur ? Quelle est la différence entre les types 1 et 2 ?

Quelle est la différence entre curl et Wget ?