The Geek Diary

l’utilitaire nohup exécute une ligne de commande de telle sorte que la commande continue de s’exécuter après la déconnexion. En d’autres termes, nohup fait qu’un processus ignore un signal SIGHUP. Selon la façon dont le shell local est configuré, un processus démarré sans nohup et exécuté en arrière-plan peut être tué lorsque vous vous déconnectez.,

syntaxe pour exécuter la commande nohup

la commande de base sytax pour exécuter une commande nohup est la suivante:

# nohup command_with_options &

toute sortie de votre travail sera redirigée vers un fichier appelé ‘ nohup.out’, sauf si vous spécifiez le contraire avec

# nohup command > myout.file 2>&1

qui envoie toutes les sorties au fichier myout.fichier.

enregistrement de la sortie de la commande nohup

Si vous ne redirigez pas la sortie d’une commande que vous exécutez à l’aide de nohup, la sortie standard et l’erreur standard sont envoyées au fichier nommé nohup.dans le répertoire de travail., Si vous n’avez pas d’autorisation d’écriture pour le répertoire de travail, nohup envoie la sortie à ~/nohup.hors.

Vous pouvez également envoyer la sortie à tout autre fichier spécifié par vous comme indiqué ci-dessus dans le sytax de la commande.

exemples

exécution de nohup sans spécifier de fichier de sortie

faisons un exemple et testons qu’il continue de fonctionner après votre déconnexion. Nous allons lancer un script appelé script.sh., Le contect du script est comme suit:

# cat script.sh#!/bin/shwhile(true)do echo "Hello World!" sleep 10done

Permet d’exécuter le script dans backgroupd avec nohup commande:

# nohup script.sh & 179 $ nohup: appending output to `nohup.out`

Comme vous pouvez le voir ci-dessus, nous n’avons pas spécifié un fichier de sortie. Ainsi, la sortie standard et l’erreur standard par défaut vont dans le nohup.fichier dans le répertoire où le script a été appelé. Le numéro 179 spécifiait également l’ID de processus(PID) de la tâche. CE PID peut être vérifié dans la sortie de commande” ps-ef  » comme indiqué ci-dessous.,

Maintenant, quittez le shell, vous connecter à nouveau, et exécutez la commande suivante:

$ ps x | grep script.sh179 ? S N 0:01 sh /root/script.sh 506 p2 S 0:00 grep script.sh

Le script fonctionne encore. Utilisez « ps-ef / grep ps1 » si votre système ne prend pas en charge ps X. Vous pouvez également vérifier le fichier de sortie nohup. pour plus de confirmation.

# cat nohup.outHello World!Hello World!Hello World!Hello World!...

Remarque: Si vous exécutez une autre commande en utilisant nohup, la sortie est ajoutée au nohup existant.fichier. Soyez prudent lorsque vous exécutez plusieurs commandes à partir du même répertoire, car toute la sortie est envoyée au même nohup.fichier out, qui peut devenir déroutant.,

exécution de nohup spécification d’un fichier de sortie

maintenant, le script ci-dessus peut également être exécuté commande nohup et spécifier un fichier de sortie personnalisé comme indiqué ci-dessous:

# nohup script.sh > /tmp/script.out 2>&1 14235

Conclusion

Si vous exécutez un processus et que vous ne pensez pas qu’il sera terminé commande. Nohup continuera le traitement lorsque vous quitterez votre compte. Nohup signifie pas raccrocher.

Author: admin

Laisser un commentaire

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