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.outest utilisé comme fichier par défaut pour stdout et stderr.