nohup - Run Commands in the Background - Linux CLI
Table des matières:
- Comment utiliser la commande nohup
- Exécution de la commande en arrière-plan
- Rediriger la sortie vers un fichier
- Alternatives
- Écran
- Tmux
- Renier
- Conclusion
La commande
nohup
exécute un autre programme spécifié comme argument et ignore tous les signaux
SIGHUP
(raccrochage).
SIGHUP
est un signal qui est envoyé à un processus lorsque son terminal de commande est fermé.
Habituellement, lorsque vous exécutez un programme sur SSH, si votre connexion tombe ou que 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 utile. Il ignore tous les signaux de raccrochage et le processus continuera de s'exécuter.
Comment utiliser la commande nohup
La syntaxe de la commande
nohup
est la suivante:
nohup COMMAND
La commande n'accepte aucune autre option que les options
--help
et
--version
standard.
Jetons un œil à l'exemple suivant:
nohup mycommand
nohup: ignoring input and appending output to 'nohup.out'
nohup
exécute la commande
mycommand
au premier plan et redirige la sortie de la commande vers le fichier
nohup.out
. 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 dans 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écution de la commande en arrière-plan
L'utilisation de
nohup
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 inclut l'ID du travail du shell (entouré de crochets) et l'ID du processus:
25177
Vous pouvez utiliser l'ID du travail pour mettre la commande au premier plan à l'aide de la commande
fg
.
Si, pour une raison quelconque, vous souhaitez mettre fin au processus, utilisez la commande
kill
suivie de l'ID du processus:
Rediriger la sortie vers un fichier
Par défaut,
nohup
redirige la sortie de la commande vers le fichier
nohup.out
. 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 différents fichiers:
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 vous déconnectez.
Écran
Screen ou GNU Screen est un programme de multiplexage de terminal qui vous permet de démarrer une session d'écran et d'ouvrir un nombre illimité de fenêtres (terminaux virtuels) à l'intérieur de cette session. Les processus s'exécutant 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 s'exécutant dans Tmux continueront de s'exécuter même si vous fermez le terminal.
Renier
disown
est un shell intégré qui supprime un travail shell du contrôle de travail 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.
Commande chmod sous linux (autorisations de fichiers)
Sous Linux, l'accès aux fichiers est géré via les autorisations, les attributs et la propriété des fichiers. Ce didacticiel explique comment utiliser la commande chmod pour modifier les autorisations d'accès aux fichiers et aux répertoires.
Commande chgrp sous linux (changement de groupe)
Sous Linux, chaque fichier est associé à un propriétaire et à un groupe et dispose d'autorisations qui déterminent quels utilisateurs peuvent lire, écrire ou exécuter le fichier. La commande chgrpc change la propriété du groupe des fichiers donnés.
Commande cp sous linux (copier des fichiers)
cp est un utilitaire de ligne de commande pour copier des fichiers et des répertoires sur les systèmes Unix et Linux.