Avr 16, 2026
/
Katerina B.
/
7minutes de lecture
La commande no hang up ou nohup permet aux processus de votre système Linux de continuer à s’exécuter même après la fermeture du terminal. C’est essentiel pour les administrateurs système, car cela permet d’éviter que des tâches de longue durée, comme des processus de build ou la surveillance, ne soient interrompues.
L’utilisation de la commande nohup est simple : saisissez-la dans le terminal de votre système, suivie du processus que vous souhaitez exécuter en continu. Au-delà de l’utilisation de base, vous pouvez l’utiliser pour exécuter des tâches en arrière-plan et rediriger la sortie vers un fichier spécifique.
Dans cet article, nous aborderons plus en détail l’utilisation de la commande nohup, ainsi que ses applications concrètes.
Linux envoie le signal « hang-up » (SIGHUP) pour terminer tous les processus du shell lorsque vous fermez le terminal. Cela peut également se produire sur un système distant en raison de problèmes de connectivité.
Pour redémarrer les processus, vous devez ressaisir manuellement les commandes Linux ou les scripts. Cela peut être fastidieux et chronophage s’il y a de nombreuses tâches de longue durée.
La commande nohup empêche les processus de recevoir le signal SIGHUP, les maintenant en cours d’exécution même après la fermeture du terminal.
La commande nohup est utile pour assurer l’exécution continue de tâches. Voici quelques exemples de cas d’usage courants pour les administrateurs système et les développeurs :
La syntaxe de la commande nohup est structurée comme suit :
nohup commande [options]
[/options]
Voici le détail de la syntaxe :
Les options de la commande nohup sont les suivantes :
Vous pouvez exécuter la commande suivante pour vérifier la version de nohup :
nohup --version

Voici plusieurs exemples de la commande nohup dans un scénario réel. Pour suivre, ouvrez le terminal de votre système ou le terminal du navigateur si vous utilisez un serveur privé virtuel (VPS) Linux de Hostinger.

Pour exécuter un processus indéfiniment, utilisez la syntaxe de base de la commande nohup comme suit :
processus nohup
Par exemple, saisissez ce qui suit pour exécuter un simple script shell Bash qui affiche un message « Hello world ! » :
nohup ./script.sh
Après avoir exécuté nohup, vous pouvez consulter la sortie du processus dans le fichier nohup.out. Vérifiez son contenu à l’aide de la commande cat suivante :
cat nohup.out

Pour enregistrer la sortie des processus exécutés avec nohup dans un autre fichier, utilisez l’opérateur de redirection (> ;) comme suit :
nohup ./script.sh > file.txt
Vérifiez la sortie enregistrée en affichant le contenu du fichier à l’aide de la commande Linux cat :
cat file.txt

Notez que l’opérateur de redirection ci-dessus écrasera le fichier avec la nouvelle sortie. Si vous souhaitez ajouter à la suite du contenu existant, utilisez l’opérateur suivant :
nohup ./script.sh >> file.txt
Dans certains cas, nohup ne redirige pas automatiquement les erreurs, ce qui vous oblige à le faire manuellement. Par exemple, ce qui suit consignera la sortie et les erreurs du processus dans file.txt :
nohup ./script.sh > file.txt 2>&1
Voici le détail de la commande :
Dans le shell Bash, la commande peut également prendre la forme suivante :
nohup ./script.sh &> file.txt
Si vous souhaitez ajouter les erreurs, utilisez simplement la redirection > ;> au lieu de > ; comme ceci :
nohup ./script.sh >> file.txt 2>&1
Vous pouvez également enregistrer la sortie et les erreurs du processus nohup dans des fichiers distincts comme suit :
nohup ./script.sh > output.txt > errors.txt
Notez qu’il n’y a pas d’espace entre l’opérateur de redirection et stdout ou stderr.
Par défaut, la commande nohup exécute un processus dans le shell principal du terminal. Cela signifie que vous devez l’arrêter pour exécuter d’autres utilitaires, ce qui peut être problématique si vous avez plusieurs tâches.
Comme solution de contournement, nohup propose l’option & ; qui permet d’exécuter le processus en arrière-plan. Cela vous permet d’utiliser le shell principal pour d’autres tâches, même lorsque le processus est en cours d’exécution. Voici à quoi ressemble la commande :
nohup process &
Lors de l’exécution de nohup en arrière-plan, votre terminal affichera une sortie similaire à celle-ci :
[1] 1234

L’espace réservé [1] représente le rang du processus en arrière-plan dans le shell du terminal courant. Par exemple, [1] signifie le premier, [2] le deuxième, et ainsi de suite.
Par ailleurs, 1234 est l’identifiant de processus (PID) du job. Ces informations sont essentielles pour identifier et arrêter le processus, ce que nous expliquerons plus tard.
Pour vérifier les processus en cours démarrés avec nohup, utilisez la commande ps suivie de leur PID. Voici la commande :
ps -p PID
Le processus est en cours d’exécution si le terminal affiche la commande exécutée ou le nom du script.

Si vous oubliez le PID, utilisez pgrep pour vérifier l’état d’un processus nohup à l’aide de son nom de commande ou de script, comme suit :
pgrep -a process-name
Par exemple, saisissez ce qui suit si vous voulez vérifier si la commande sleep est en cours d’exécution :
pgrep -a sleep
Si vous oubliez à la fois le PID et le nom du processus, utilisez la commande lsof pour vérifier les tâches qui utilisent le fichier de sortie nohup :
lsof | grep nohup.out

Votre terminal répertoriera les commandes et scripts exécutés avec nohup, ainsi que leur PID. N’oubliez pas de remplacer nohup.out si vous avez redirigé la sortie vers un autre fichier.
Pour arrêter un processus nohup qui s’exécute dans le shell principal, appuyez sur le raccourci Ctrl + C pour envoyer le signal SIGTERM — une méthode d’arrêt en douceur qui permet à la tâche de s’achever avant l’arrêt.
Si vous exécutez une tâche nohup en arrière-plan, la seule façon de l’arrêter est d’utiliser la commande kill, qui permet de tuer un processus sous Linux à l’aide de son PID. La syntaxe est la suivante :
kill PID
Par exemple, voici une commande pour mettre fin à un processus dont le PID est 1234 :
kill 1234
Par défaut, la commande kill enverra le signal SIGTERM, ce qui peut ne pas suffire à arrêter un processus qui ne répond pas. Dans ce cas, utilisez le signal SIGKILL pour forcer l’arrêt de la tâche.
Pour envoyer le signal de terminaison SIGKILL avec la commande kill, ajoutez l’option -9 :
kill -9 PID
Notez que vous ne pouvez pas ramener des processus nohup de l’arrière-plan au premier plan ni dans le shell principal. C’est parce que nohup n’est pas interactif et n’enregistre pas vos tâches comme des jobs, qui sont gérables avec les commandes fg ou bg.
Si vous souhaitez interagir avec des processus en arrière-plan, exécutez-les à l’aide d’outils alternatifs que nous présenterons dans la section suivante.
Outre nohup, Linux propose d’autres outils qui permettent d’exécuter des commandes en arrière-plan. Voici quelques options populaires.
GNU Screen
GNU Screen est un multiplexeur de terminaux qui vous permet de créer des sessions de shell virtuelles restant actives en arrière-plan.
Étant donné que Screen est interactif, c’est une excellente alternative à nohup si vous souhaitez gérer et basculer facilement entre plusieurs processus.
tmux
Le multiplexeur de terminaux (tmux) est une alternative à Screen plus moderne et conviviale. Cet outil propose des fonctionnalités telles qu’un meilleur fractionnement des fenêtres et une interface utilisateur intuitive, ce qui le rend plus facile à utiliser que Screen.
Cependant, les fonctionnalités plus avancées de tmux le rendent également plus difficile à apprendre que Screen.
systemd-run
La commande systemd-run exécute des processus en tant que service, ce qui est plus fiable, car vos tâches bénéficient d’une meilleure isolation, d’une gestion des dépendances et de mécanismes de basculement.
Cependant, systemd-run n’est disponible que sur les systèmes d’exploitation basés sur systemd. C’est également plus complexe à mettre en place que nohup, puisque vous devez configurer le processus en tant que service.
Docker
Docker est un outil de conteneurisation permettant d’exécuter des processus dans des environnements dédiés, avec leurs propres contraintes de ressources et leur configuration logicielle. Comme les tâches peuvent s’exécuter indépendamment les unes des autres, cela offre un niveau élevé d’isolation et de fiabilité.
Docker est surdimensionné pour des tâches simples que vous exécutez généralement avec nohup, car il peut être complexe à configurer et à gérer. C’est idéal pour les processus complexes, comme la mise en place d’un pipeline de déploiement cohérent.
La commande nohup est un outil pratique pour maintenir des processus simples en cours d’exécution en arrière-plan. C’est particulièrement utile lorsque vous travaillez avec un serveur distant, où un problème de connexion peut mettre fin à la session du terminal.
Notez que nohup convient surtout aux processus simples, ponctuels. Pour des tâches plus complexes, envisagez un autre outil doté de fonctionnalités interactives, comme Screen.
Une fois que vous avez compris l’objectif de la commande nohup, essayez-la dans le terminal de votre système ou dans le terminal du VPS de Hostinger dans le navigateur. L’hébergement VPS de Hostinger vous offre également la possibilité de solliciter Kodee, un assistant IA, pour obtenir de l’aide si nécessaire.
Tout le contenu des tutoriels de ce site est soumis aux normes éditoriales et aux valeurs rigoureuses de Hostinger.