Présentation
SIGHUP
(Signal Hang UP) est un signal qui termine un processus Linux lorsque son terminal de contrôle est fermé. Si vous fermez accidentellement un terminal ou perdez la connexion avec le serveur, tous les processus en cours d'exécution sont automatiquement arrêtés.
Utiliser le nohup
est un moyen de bloquer le SIGHUP
signal et permettant aux processus de se terminer même après la déconnexion du terminal/shell.
Dans cet article, vous apprendrez à utiliser le nohup
commande lors de l'exécution des processus.
Syntaxe nohup
La syntaxe pour utiliser le nohup
la commande est :
nohup [command] [argument]
Options nohup
Le nohup
La commande comporte deux options de commande de base, le --help
et le --version
options.
Pour afficher le message d'aide, exécutez la commande :
nohup --help
Pour afficher les informations de version, saisissez :
nohup --version
Exemples nohup
Il existe plusieurs façons d'utiliser le nohup
commande, y compris l'exécution du processus requis en arrière-plan, l'exécution simultanée de plusieurs processus ou la redirection de la sortie vers un autre fichier.
Les exemples ci-dessous expliquent les cas d'utilisation courants pour le nohup
commande.
1. Exécuter un processus avec nohup
Pour exécuter une commande à l'aide de nohup
sans aucun argument, suivez simplement la syntaxe :
nohup [command]
Le shell ignore la sortie et l'ajoute au nohup.out fichier.
Par exemple, en exécutant example.sh script bash (qui est un simple Hello World script) doit afficher le message Hello World message dans le fichier nohup.out :
nohup bash example.sh
Vérifiez le contenu du fichier avec :
cat nohup.out
2. Exécuter un processus en arrière-plan avec nohup
L'exécution d'un processus Linux en arrière-plan libère le terminal dans lequel vous travaillez. Pour exécuter un processus Linux en arrière-plan avec le nohup
commande, ajoutez le &
symbole à la fin de la commande :
nohup [command] &
Par exemple, pour exécuter example.sh script bash en arrière-plan, utilisez la commande :
nohup bash example.sh &
La sortie affiche l'ID de tâche shell et l'ID de processus - [1] 7366 dans l'exemple ci-dessous.
Pour mettre la commande au premier plan, tapez :
fg
La sortie indique si le processus est en cours ou terminé.
3. Exécuter plusieurs processus en arrière-plan avec nohup
nohup bach -c '[command1] && [command2]'
Remplacez [command1]
et [command2]
avec les commandes de votre choix. Ajoutez plus de commandes si nécessaire, en veillant à les séparer par &&
.
Par exemple, pour afficher la date/heure et le calendrier du mois en cours, exécutez :
nohup bash -c 'date && cal'
Comme la sortie est dirigée vers le nohup.out fichier, utilisez la commande cat pour lister le contenu du fichier et vérifiez la commande ci-dessus :
cat nohup.out
La sortie affiche la date et le calendrier demandés avec la commande ci-dessus.
4. Rediriger la sortie vers un autre fichier
Comme mentionné dans la section ci-dessus, nohup
enregistre tous les messages de sortie et les erreurs dans nohub.out fichier.
Redirigez ces messages en spécifiant un emplacement personnalisé dans la commande :
nohup [command] > /path/to/output/file.txt
Dans l'exemple ci-dessous, la sortie de la commande nohup bash -c 'date && cal'
est redirigé vers le output.txt dossier. Vérifiez la sortie avec la commande :
cat output.txt