50 % de réduction sur tous les plans, durée limitée. À partir de $2.48/mo
8 min restantes
Serveurs et OS

Comment fonctionne la commande nohup dans Linux : syntaxe, cas d'usage et exemples

Ada Lovegood By Ada Lovegood 8 min de lecture Mis à jour le 14 juillet 2024
commande nohup

Si vous développez sous Linux, vous connaissez l'importance de la stabilité et de la fiabilité de vos sessions. Les processus de longue durée sous Linux doivent continuer à tourner même après déconnexion. Heureusement, Linux dispose d'une commande prévue à cet effet. La commande commande nohup vous permet de maintenir des commandes en cours d'exécution en arrière-plan, sans interruption. Cela évite toute perte de données et fait gagner un temps précieux. Ce guide couvre tout ce que vous devez savoir sur la commande nohup de Linux : sa syntaxe, ses options, des exemples concrets et la résolution des erreurs courantes.

Comprendre la syntaxe de nohup sous Linux

La commande nohup est simple à prendre en main. Elle vous permet d'exécuter des commandes ou des scripts en arrière-plan, avec la garantie qu'ils continuent de tourner même après la fermeture du terminal. Voici comment l'utiliser :

nohup [command] [arguments] &

Remplacez [command] par la commande ou le script à exécuter. Et [argument] correspond aux arguments ou options requis par la commande. Le symbole & envoie la commande en arrière-plan. Voici un exemple :

nohup myscript.sh &

Dans cet exemple, myscript.sh est un script bash qui continuera de s'exécuter même si vous fermez le terminal. La sortie sera redirigée vers un fichier nommé nohup.out par défaut, sauf si vous indiquez un autre chemin.

Les options de nohup

La commande nohup en elle-même ne propose pas beaucoup d'options, mais savoir l'utiliser avec différentes commandes et techniques de redirection permet d'en tirer bien plus. Commençons par voir comment obtenir des informations sur la commande nohup :

nohup –-help 
nohup --version

Ces deux commandes vous fournissent des informations utiles en affichant le message d'aide et la version de nohup.

Lancer un processus avec la commande nohup

Pour exécuter un processus avec la commande nohup, suivez la même structure que celle présentée dans la section précédente :

nohup [command]

Pour lancer un processus en arrière-plan, ajoutez simplement & à la fin de votre commande.

Lancer plusieurs processus en arrière-plan avec la commande nohup

Mais comment exécuter plusieurs processus en arrière-plan avec la commande nohup ?

nohup bash -c '[command A] && [command B]' &

Remplacez [command A] et [command B] par les commandes à exécuter en arrière-plan. Supposons que vous souhaitiez d'abord mettre à jour les paquets de votre système, puis supprimer les fichiers inutiles, le tout via la commande nohup :

nohup bash -c 'sudo apt-get update && sudo apt-get autoremove -y' &

Dans cet exemple, nohup permet aux deux processus, mise à jour et nettoyage, de continuer en arrière-plan. Les tâches de maintenance de votre système s'effectuent ainsi sans que vous ayez à garder le terminal ouvert.

Rediriger la sortie personnalisée

La sortie de ce processus sera redirigée vers nohup.out par défaut. Mais si vous souhaitez recevoir la sortie dans un autre chemin, voici comment procéder :

nohup [command] > [/path/to/new/output.txt]

N'oubliez pas de remplacer les valeurs dans [] par la commande et le chemin de fichier souhaités.

Combiner nohup avec d'autres commandes

nohup peut être combiné avec d'autres commandes et des pipes pour créer des chaînes de commandes puissantes. Voici un exemple :

nohup find / -name "*.log" | xargs grep "ERROR" > error_logs.txt 2>&1 &

Ici, la commande trouvez est utilisée pour rechercher des fichiers journaux, et grep est utilisée pour rechercher le terme « ERROR ». Le résultat combiné est redirigé vers error_logs.txt.

Dans cette section, nous avons couvert les options et cas d'usage les plus courants de la commande nohup. En maîtrisant ces instructions, vous pourrez utiliser nohup efficacement pour exécuter des processus Linux en arrière-plan.

Erreurs courantes et dépannage

La commande nohup est généralement simple à utiliser, mais vous pouvez rencontrer quelques erreurs courantes en cours de route. Comprendre ces erreurs et savoir les résoudre vous fera gagner du temps. Voici les erreurs les plus fréquentes et comment les corriger :

Permission refusée

Cette erreur se produit lorsque le script ou la commande que vous essayez d'exécuter ne dispose pas de la permission d'exécution. Le message d'erreur ressemble à ceci : nohup: failed to run command 'myscript.sh': Permission denied

Pour résoudre ce problème, assurez-vous que le script ou la commande dispose des bonnes permissions. Vous pouvez ajouter la permission d'exécution avec chmod :

chmod +x myscript.sh 
nohup ./myscript.sh &

Commande introuvable

Cette erreur se produit si la commande ou le script est introuvable à l'emplacement indiqué ou n'est pas disponible dans votre PATH. Le message d'erreur ressemble à ceci : nohup: failed to run command 'myscript.sh': No such file or directory

Pour corriger cette erreur, vérifiez que la commande ou le script existe et se trouve dans le bon répertoire. Vous devrez peut-être fournir le chemin absolu vers le script :

nohup /path/to/myscript.sh &

Vérifiez également que la commande est installée et disponible dans votre PATH.

Aucune sortie

Il peut arriver qu'aucune sortie n'apparaisse dans le terminal ni dans le fichier de sortie. Si la commande produit bien une sortie mais que vous ne la voyez pas, elle est peut-être redirigée vers un autre emplacement que le fichier par défaut, ou il peut y avoir un problème de permissions. Pour y remédier, spécifiez explicitement le fichier de sortie afin de vous assurer que la redirection est correcte :

nohup myscript.sh > output.log 2>&1 &

Par exemple, cette commande redirige à la fois la sortie standard et les erreurs standard vers un fichier nommé output.log.

Script non exécuté en arrière-plan

Il arrive que votre script ou commande semble s'exécuter, mais pas en arrière-plan. La raison est souvent simple : vous avez peut-être oublié d'ajouter le symbole & à la fin de la commande pour l'exécuter en arrière-plan. La solution est tout aussi simple : vérifiez que ce symbole est bien présent et le tour est joué.

Processus bloqué ou ne répondant plus

Un processus lancé avec nohup peut se bloquer ou ne plus répondre. Cela arrive généralement si le processus attend une entrée utilisateur ou s'il rencontre des problèmes d'accès aux ressources. Deux solutions s'offrent à vous :

  • Vérifier les entrées requises : Assurez-vous que la commande ne nécessite aucune entrée interactive.
  • Problèmes de ressources : Vérifiez que la commande a accès aux ressources nécessaires (par exemple, fichiers, réseau).

Écraser nohup.out

Si vous exécutez plusieurs processus en arrière-plan avec la commande nohup, vous risquez de remplacer involontairement le fichier nohup.out . Pour éviter ce problème, définissez un chemin spécifique pour chaque processus. Ainsi, chaque processus dispose de son propre fichier de sortie et le chemin par défaut n'est pas écrasé.

En connaissant les erreurs courantes de nohup et leurs solutions, vous pouvez utiliser la commande nohup sans difficulté.

Conclusion

La commande nohup est un outil précieux pour tout utilisateur Linux qui doit exécuter des processus en arrière-plan : elle garantit que ces processus continuent de tourner même après la déconnexion. Dans ce guide, nous avons présenté la syntaxe de base, exploré différentes options et passé en revue les erreurs courantes ainsi que les méthodes pour les résoudre. Maîtriser la commande nohup vous permet de gérer efficacement les tâches longues, ce qui améliore votre productivité et vos compétences en administration système.

Si vous êtes un développeur Linux et souhaitez tirer le meilleur de votre environnement Linux, envisagez de passer à un Linux VPSfiable. Notre service VPS hébergé dans le cloud offre un support 24h/24 et 7j/7, ainsi qu'une garantie de disponibilité de 99,95 %. Vos applications tournent en permanence et vous pouvez obtenir de l'aide à tout moment. Avec une infrastructure solide et des ressources fiables, notre VPS est conçu pour répondre aux besoins des développeurs Linux. Vous pouvez également avoir votre distribution Linux préférée préinstallée, ce qui rend la mise en place rapide et simple. Donnez une nouvelle dimension à vos projets Linux avec un VPS qui vous offre la puissance et la flexibilité dont vous avez besoin.

Questions fréquemment posées

Quelle est la différence entre nohup et &?

nohup empêche l'arrêt d'un processus lors de la déconnexion de l'utilisateur, tandis que & exécute un processus en arrière-plan. Utiliser nohup garantit que le processus continue après la déconnexion, et le combiner avec & lui permet de s'exécuter en arrière-plan.

À quoi sert nohup ?

nohup sert à garantir qu'une commande ou un script continue de s'exécuter même après la déconnexion de l'utilisateur ou la fermeture du terminal. C'est indispensable pour les processus de longue durée qui doivent rester actifs sans intervention de l'utilisateur.

Qu'est-ce que le fichier nohup out ?

La nohup.out est le fichier de sortie par défaut dans lequel nohup redirige la sortie standard et les erreurs standard d'une commande. Si aucun autre fichier de sortie n'est spécifié, la sortie de la commande est enregistrée dans nohup.out dans le répertoire courant.

Partager

À lire sur le blog

Continuez la lecture.

Image de couverture des meilleures applications auto-hébergées compatibles avec Cosmos Cloud, avec des panneaux d'applications autour d'un tableau de bord Cosmos.
Serveurs et OS

Les meilleures applications auto-hébergées compatibles avec Cosmos Cloud : fichiers, médias, mots de passe, automatisation et plus encore !

Maybe vous avez installé Cosmos Cloud et cherchez maintenant des applications qui s'y intègrent bien, ou peut-être que vous n'avez pas encore adopté Cosmos et que vous voulez juste voir si ça correspond à votre flux de trava

Nick ArgentNick Argent 16 min de lecture
Illustration de couverture pour Portainer vs Cosmos Cloud pour la gestion d'applications Docker, avec un schéma de configuration hybride et des blocs ops/accès en néon.
Serveurs et OS

Portainer vs Cosmos Cloud : quelle solution pour gérer vos applications Docker ?

Si vous connaissez déjà Docker et cherchez simplement la meilleure façon de gérer une pile applicative en croissance, voici la réponse directe à la question Portainer vs Cosmos Cloud. Portainer est le choix le plus solide pour une gest

Nick ArgentNick Argent 14 min de lecture
Illustration principale pour Cosmos Cloud vs CasaOS vs Umbrel, montrant trois approches auto-hébergées au sein d'un réseau cloud abstrait.
Serveurs et OS

Cosmos Cloud vs CasaOS vs Umbrel : quelle plateforme auto-hébergée correspond à votre configuration ?

En bref : CasaOS reste le point de départ le plus accessible, Umbrel offre l'expérience la plus soignée et la mieux organisée, et Cosmos Cloud devient le meilleur choix dès que vous souhaitez un contrôle plus fin sur les dom

Nick ArgentNick Argent 11 min de lecture

Prêt à déployer ? À partir de 2,48 $/mois.

Cloud indépendant, depuis 2008. AMD EPYC, NVMe, 40 Gbps. Remboursement sous 14 jours.