Lorsque vous quittez le shell d'un système Linux, tous les processus en cours d'exécution sont généralement interrompus ou raccrochés. Alors, que faites-vous si vous voulez continuer à faire fonctionner les processus même en quittant le shell/terminal ? C'est là que la commande nohup entre.
Commande Nohup
Nohup, abréviation de no hang up, est une commande des systèmes Linux qui maintient les processus en cours d'exécution même après avoir quitté le shell ou le terminal.
Nohup empêche les processus ou les travaux de recevoir le signal SIGHUP (Signal Hang UP). Il s'agit d'un signal envoyé à un processus lors de la fermeture ou de la sortie du terminal. Dans ce guide, nous examinons la commande nohup et montrons comment elle peut être utilisée.
Syntaxe de la commande Nohup
La syntaxe de la commande Nohup est la suivante :
nohup command arguments
OU
nohup options
Voyons comment la commande entre en jeu
Vérification de la version de Nohup
Vous pouvez commencer par vérifier la version de Nohup en utilisant la syntaxe ci-dessous
nohup --version
Sortie
Démarrer un processus avec Nohup
Si vous souhaitez que vos processus/tâches restent en cours d'exécution, faites précéder la commande de nohup
comme indiqué ci-dessous. Les travaux continueront à s'exécuter dans le shell et ne seront pas tués à la sortie du shell ou du terminal.
nohup ./hello.sh
Sortie
À partir de la sortie ci-dessus, la sortie de la commande a été enregistrée dans nohup.out
pour vérifier cette exécution,
cat nohup.out
Sortie
De plus, vous pouvez choisir de rediriger la sortie vers un autre fichier, comme indiqué
nohup ./hello.sh > output.txt
Encore une fois, pour visualiser le fichier exécuté
cat output.txt
Sortie
Pour rediriger vers un fichier et vers l'erreur standard et la sortie, utilisez le > filename 2>&1
attribut comme indiqué
nohup ./hello.sh > myoutput.txt >2&1
Sortie
Démarrer un processus en arrière-plan à l'aide de Nohup
Pour démarrer un processus en arrière-plan, utilisez le &
symbole à la fin de la commande. Dans cet exemple, nous envoyons un ping à google.com et l'envoyons en arrière-plan.
nohup ping google.com &
Sortie
Pour vérifier le processus lors de la reprise du shell, utilisez le pgrep
commande comme indiqué
pgrep -a ping
Sortie
Si vous voulez arrêter ou tuer le processus en cours, utilisez le kill
commande suivie de l'ID de processus comme indiqué
kill 2565
Sortie
Résumé
- Tous les processus exécutés à l'aide de la commande nohup ignoreront le signal SIGHUP même en quittant le shell.
- Une fois qu'une tâche est démarrée ou exécutée à l'aide de la commande nohup, stdin ne sera plus disponible pour l'utilisateur.
- Par défaut, le
nohup.out
est utilisé comme fichier par défaut pour stdout et stderr.