Linux nohup Command (Français)

la commande nohup exécute un autre programme spécifié comme argument et ignore tous les signaux SIGHUP (hangup). 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 la commande nohup est très pratique., Il ignore tous les signaux de blocage et le processus continuera à s’exécuter.

Comment Utiliser le nohup Commande #

La syntaxe de la balise nohup commande est comme suit:

nohup COMMAND 

La commande n’acceptons pas d’autres options à l’exception de la norme --help et --version.,

prenons un coup d’oeil à l’exemple suivant:

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

nohup exécute le mycommand commande dans le premier plan et redirige la sortie de la commande de la balise nohup.out fichier. Ce fichier est créé dans le répertoire de travail actuel . Si l’utilisateur exécutant 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 quittez ou fermez le terminal, le processus n’est pas terminé.,

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

En utilisantnohup au premier plan n’est pas très utile car vous ne pourrez pas interagir avec le shell tant que la commande ne sera pas terminée.

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

nohup mycommand &

la sortie comprend l’ID du travail shell (entouré de crochets) et l’ID du processus:

 25177

eut utiliser l’ID de travail pour mettre la commande au premier plan en utilisant la commande fg.,

Si, pour une raison quelconque, vous souhaitez mettre fin au processus, utilisez la commande kill suivie de l’ID du processus:

kill -9 25132

redirigeant la sortie vers un fichier #

par défaut, nohup redirige sortie dans le fichier nohup.out. Si vous souhaitez rediriger la sortie vers un autre fichier, utilisez la redirection shell standard.,

par exemple, Pour rediriger la sortie standard et l’erreur standard à la balise mycommand.out vous pouvez utiliser:

nohup mycommand > mycommand.out 2>&1 &

Pour rediriger la sortie standard et l’erreur standard de fichiers différents:

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

des solutions de rechange #

Il y a plusieurs autres programmes que vous pouvez utiliser pour éviter une commande à la fin lorsque vous fermez le terminal ou débranché.,

Screen #

Screen ou GNU Screen est un programme multiplexeur de terminal qui vous permet de démarrer une session d’écran et d’ouvrir n’importe quel nombre de fenêtres (terminaux virtuels) à l’intérieur de cette session. Les processus s’exécutant à L’écran continueront à s’exécuter lorsque leur fenêtre n’est pas visible même si vous êtes déconnecté.

Tmux #

Tmux est une alternative moderne à la GNU écran. 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.,

Disown #

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

Conclusion #

nohup vous permet d’empêcher la fin des commandes lorsque vous vous déconnectez ou quittez le terminal.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *