GNU/Linux >> Tutoriels Linux >  >> Linux

Commande Linux Nohup

Le nohup La commande exécute un autre programme spécifié comme argument et ignore tous les SIGHUP (raccrocher). SIGHUP est un signal envoyé à un processus lorsque son terminal de contrôle est fermé.

Habituellement, lorsque vous exécutez un programme via SSH, si votre connexion est interrompue ou si vous vous déconnectez, la session est terminée et tous les processus exécutés à partir du terminal s'arrêtent. C'est là que le nohup la commande est pratique. Il ignore tous les signaux de raccrochage et le processus continuera à s'exécuter.

Comment utiliser la commande nohup #

La syntaxe du nohup commande est la suivante :

nohup COMMAND [ARGS]

La commande n'accepte aucune autre option à l'exception du standard --help et --version .

Prenons l'exemple suivant :

nohup mycommand
nohup: ignoring input and appending output to 'nohup.out'

nohup exécute la mycommand commande au premier plan et redirige la sortie de la commande vers le nohup.out dossier. Ce fichier est créé dans le répertoire de travail courant. Si l'utilisateur qui exécute la commande ne dispose pas d'autorisations d'écriture sur le répertoire de travail, le fichier est créé dans le répertoire personnel de l'utilisateur.

Si vous vous déconnectez ou fermez le terminal, le processus n'est pas terminé.

Exécuter la commande en arrière-plan #

Utiliser nohup au premier plan n'est pas très utile car vous ne pourrez pas interagir avec le shell tant que la commande n'est pas terminée.

Pour exécuter la commande en arrière-plan, ajoutez le & symbole à la fin de la commande :

nohup mycommand &

La sortie inclut l'ID de tâche shell (entouré de crochets) et l'ID de processus :

[1] 25177

Vous pouvez utiliser l'ID de travail pour mettre la commande au premier plan en utilisant le fg commande.

Si pour une raison quelconque vous souhaitez mettre fin au processus, utilisez le kill commandesuivi de l'identifiant du processus :

kill -9 25132

Redirection de la sortie vers un fichier #

Par défaut, nohup redirige la sortie de la commande vers le nohup.out dossier. Si vous souhaitez rediriger la sortie vers un autre fichier, utilisez la redirection standard du shell.

Par exemple, pour rediriger la sortie standard et l'erreur standard vers mycommand.out vous utiliseriez :

nohup mycommand > mycommand.out 2>&1 &

Pour rediriger la sortie standard et l'erreur standard vers des fichiers différents :

nohup mycommand > mycommand.out 2> mycommand.err &

Alternatives #

Il existe plusieurs programmes alternatifs que vous pouvez utiliser pour éviter qu'une commande ne se termine lorsque vous fermez le terminal ou que vous êtes déconnecté.

Numéro d'écran

Screenor GNU Screen est un programme multiplexeur de terminaux qui vous permet de démarrer une session screen et d'ouvrir un nombre quelconque de fenêtres (terminaux virtuels) à l'intérieur de cette session. Les processus en cours d'exécution dans Screen continueront de s'exécuter lorsque leur fenêtre n'est pas visible, même si vous êtes déconnecté.

Tmux #

Tmux est une alternative moderne à l'écran GNU. Avec Tmux, vous pouvez également créer une session et ouvrir plusieurs fenêtres à l'intérieur de cette session. Les sessions Tmux sont persistantes, ce qui signifie que les programmes exécutés dans Tmux continueront à s'exécuter même si vous fermez le terminal.

Désavouer #

disown est une commande interne du shell qui supprime une tâche du shell du contrôle de tâche du shell. Contrairement à nohup , vous pouvez utiliser disown également sur les processus en cours d'exécution.

Conclusion #

nohup vous permet d'empêcher l'arrêt des commandes lorsque vous vous déconnectez ou quittez le terminal.

Si vous avez des questions ou des commentaires, n'hésitez pas à laisser un commentaire.


Linux
  1. Commande Linux mv

  2. Linux du command

  3. Commande IP Linux

  4. Commande cd Linux

  5. Options de commande nohup sous Linux

Commande de date sous Linux

Commande W sous Linux

À la commande sous Linux

Commande Nohup Linux avec des exemples

Commande Df sous Linux

Commande Nohup sous Linux