50% de réduction tous les plans, durée limitée. À partir de $2.48/mo
il reste 8 minutes
Serveurs et système d'exploitation

Comment fonctionne la commande nohup sous Linux – Syntaxe, cas d'utilisation et exemples

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

Si vous êtes un développeur Linux, vous connaissez l'importance de la cohérence et de la fiabilité de vos sessions. Les processus de longue durée sous Linux doivent se poursuivre même après la déconnexion d'une session. Heureusement, Linux dispose d'une commande fonctionnelle à cet effet. Le commande nohup vous permet de maintenir les commandes exécutées sans interruption en arrière-plan. De cette façon, cela évite la perte de données et permet de gagner un temps précieux. Ce guide vous expliquera tout ce que vous devez savoir sur la commande Linux nohup, de sa syntaxe et de ses options aux exemples pratiques et au dépannage des erreurs courantes.

Comprendre la syntaxe Linux Nohup

La commande nohup est facile à utiliser et simple. Il vous permet d'exécuter des commandes ou des scripts en arrière-plan afin que vous soyez sûr qu'ils continuent à s'exécuter même après vous être déconnecté du terminal. Voici comment l’utiliser :

nohup [command] [arguments] &

Tu devrais remplacer [commande] avec la commande ou le script que vous souhaitez exécuter. Et [argument] représente les arguments ou options requis par la commande. Le & Le symbole envoie la commande à exécuter en arrière-plan. Voyons un exemple :

nohup myscript.sh &

Dans cet exemple, myscript.sh est un script bash qui continuera à 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 spécifiez un autre chemin.

Explorer les options de nohup

Bien que la commande nohup elle-même n'ait pas beaucoup d'options, comprendre comment l'utiliser efficacement avec diverses commandes et techniques de redirection peut améliorer ses performances. Voyons d’abord comment obtenir des informations sur la commande nohup :

nohup –-help 
nohup --version

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

Exécuter un processus avec la commande nohup

Si vous souhaitez exécuter un processus avec la commande nohup, vous pouvez suivre la même structure que j'ai expliquée dans la dernière section :

nohup [command]

Si vous souhaitez exécuter un processus en arrière-plan, ajoutez simplement & jusqu'à la fin de votre commande.

Exécution de plusieurs processus en arrière-plan avec la commande nohup

Maintenant, que se passe-t-il si vous souhaitez exécuter plusieurs processus en arrière-plan à l'aide de la commande nohup ?

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

Remplacer [commande A] et [commande B] avec les commandes que vous souhaitez exécuter en arrière-plan. Imaginez que vous souhaitiez d'abord mettre à jour vos packages système, puis nettoyer les fichiers inutiles et que vous souhaitiez le faire à l'aide de la commande nohup :

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

Dans cet exemple, non permet aux processus de mise à jour et de nettoyage de continuer à s'exécuter en arrière-plan. Ainsi, vos tâches de maintenance du système sont effectuées sans que vous ayez besoin de garder le terminal ouvert.

Redirection de la sortie personnalisée

La sortie de ce processus sera redirigée vers nohup.out par défaut. Mais que se passe-t-il si vous souhaitez recevoir la sortie par un autre chemin ? Voici comment procéder :

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

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

Combiner nohup avec d'autres commandes

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

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

Ici, le trouver La commande est utilisée pour rechercher des fichiers journaux et grep est utilisé pour rechercher le terme « ERREUR ». La sortie combinée est redirigée vers erreur_logs.txt.

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

Erreurs courantes et dépannage

L'utilisation de la commande nohup est généralement simple, mais vous pourriez rencontrer des erreurs courantes au cours du processus. Comprendre ces erreurs et savoir comment les résoudre peut vous faire gagner du temps et vous éviter des frustrations. Voyons donc quelles sont ces erreurs courantes et comment y remédier :

Autorisation refusée

Cette erreur se produit lorsque le script ou la commande que vous essayez d'exécuter ne dispose pas de l'autorisation d'exécution. Le résultat de l'erreur ressemble à ceci : nohup : échec de l'exécution de la commande 'myscript.sh' : autorisation refusée

Pour résoudre ce problème, vous devez vous assurer que le script ou la commande dispose des autorisations appropriées. Vous pouvez ajouter une autorisation d'exécution à l'aide du chmod commande:

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

Commande introuvable

Cette erreur se produit si la commande ou le script n'est pas trouvé à l'emplacement spécifié ou n'est pas disponible dans votre PATH. Le résultat de l'erreur ressemble à ceci : nohup : échec de l'exécution de la commande 'myscript.sh' : aucun fichier ou répertoire de ce type

Pour résoudre cette erreur, vous devez vérifier que la commande ou le script existe et se trouve dans le bon répertoire. Vous devrez peut-être fournir le chemin absolu du script :

nohup /path/to/myscript.sh &

Assurez-vous également que la commande est installée et disponible dans votre PATH.

Aucune sortie

Parfois, vous remarquerez peut-être qu’il n’y a aucune sortie dans le terminal ou dans le fichier de sortie. Si la commande produit une sortie, mais que vous ne la voyez pas, elle peut être redirigée vers un chemin autre que le fichier par défaut ou il peut y avoir un problème avec les autorisations de fichier. Pour résoudre ce problème, vous devez spécifier explicitement le fichier de sortie pour garantir qu'il est correctement redirigé :

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

À titre d'exemple, cette commande redirige à la fois la sortie standard et l'erreur standard vers un fichier nommé output.log.

Le script ne s'exécute pas en arrière-plan

Parfois, votre script ou votre commande semble être en cours d'exécution, mais pas en arrière-plan. La raison est généralement 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 également simple, assurez-vous simplement de l’avoir ajouté et vous êtes prêt à partir.

Processus suspendu ou ne répondant pas

Un processus démarré avec nohup peut se bloquer ou ne plus répondre. Cela peut se produire si le processus attend une entrée ou s'il y a des problèmes avec les ressources auxquelles il tente d'accéder. Il existe deux solutions à ce problème :

  • Vérifiez 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 à l'aide de la commande nohup, vous risquez d'écraser involontairement le fichier nohup.out déposer. Pour éviter ce problème, vous pouvez choisir un chemin spécifique pour chaque processus. De cette façon, chaque processus a son fichier de sortie unique et le chemin par défaut n'est pas écrasé.

En découvrant l'erreur nohup courante et ses solutions, vous pouvez utiliser la commande nohup sans aucun problème.

Conclusion

La commande nohup est un excellent outil pour tout utilisateur Linux qui a besoin d'exécuter des processus en arrière-plan, car elle garantit que vos processus continuent de s'exécuter même après la déconnexion. Dans ce guide, nous avons couvert la syntaxe de base, exploré diverses options et discuté des erreurs courantes ainsi que des conseils de dépannage. La maîtrise de la commande nohup vous permet de gérer efficacement les tâches de longue durée, ce qui améliore votre productivité et vos compétences en gestion de système.

Si vous êtes un développeur Linux qui cherche à optimiser votre expérience Linux, envisagez de passer à un logiciel fiable. Serveur virtuel Linux. Notre service VPS basé sur le cloud offre une assistance 24h/24 et 7j/7 et une garantie de disponibilité de 99,95 %, ce qui signifie que vos applications fonctionnent correctement à tout moment et que vous pouvez obtenir de l'aide à tout moment de la journée. Avec une infrastructure robuste et des ressources fiables, notre VPS est conçu pour répondre aux demandes des programmeurs Linux. De plus, vous pouvez préinstaller votre distribution Linux préférée, ce qui rend l'installation rapide et facile. Faites passer vos projets Linux au niveau supérieur avec un VPS qui offre la puissance et la flexibilité dont vous avez besoin.

FAQ

Quelle est la différence entre non et &?

non empêche la fin d'un processus lorsque l'utilisateur se déconnecte, tandis que & exécute un processus en arrière-plan. En utilisant non garantit que le processus continue après la déconnexion et le combine avec & lui permet de fonctionner en arrière-plan.

Pourquoi nohup est-il utilisé ?

non est utilisé pour 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. Il est essentiel pour les processus de longue durée qui doivent rester actifs sans intervention de l'utilisateur.

Qu’est-ce que le fichier nohup out ?

Le nohup.out file est le fichier de sortie par défaut dans lequel nohup redirige la sortie standard et l'erreur 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

Plus du blog

Continuez à lire.

Meilleures applications auto-hébergées que vous pouvez exécuter avec Cosmos Cloud Image de couverture avec des panneaux d'applications autour d'un tableau de bord Cosmos.
Serveurs et système d'exploitation

Meilleures applications auto-hébergées que vous pouvez exécuter avec Cosmos Cloud : fichiers, médias, mots de passe, automatisation et plus encore !

Peut-être avez-vous configuré Cosmos Cloud et souhaitez-vous maintenant voir quelles applications correspondent bien à celui-ci, ou peut-être n'avez-vous même pas encore choisi Cosmos et souhaitez-vous simplement voir dans quelle mesure il s'adapte à votre travail.

Nick SilverNick Silver 16 minutes de lecture
Couverture Portainer vs Cosmos Cloud pour la gestion des applications Docker avec diagramme de configuration hybride et opérations néon vs blocs d'accès.
Serveurs et système d'exploitation

Portainer vs Cosmos Cloud : la meilleure solution pour la gestion des applications Docker

Si vous connaissez déjà Docker et souhaitez simplement exécuter une pile d'applications plus propre et croissante, voici la réponse courte à Portainer vs Cosmos Cloud. Portainer est le meilleur choix pour la direction

Nick SilverNick Silver 14 minutes de lecture
Graphique de fonctionnalité Cosmos Cloud vs CasaOS vs Umbrel montrant trois chemins auto-hébergés dans un monde de réseau cloud abstrait.
Serveurs et système d'exploitation

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

La réponse courte est que CasaOS est toujours le point de départ le plus simple, Umbrel a la sensation la plus propre et Cosmos Cloud a plus de sens une fois que vous souhaitez un contrôle plus strict sur doma.

Nick SilverNick Silver 11 minutes 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.