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!...
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.