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.