Comment utiliser nohup dans Linux

Comment utiliser nohup dans Linux
Imaginez si un processus critique fonctionne sur votre système et prend beaucoup de temps. Soudain, vous devez vous déconnecter de votre système. Si vous vous déconnectez, vos processus s'arrêteront et vous voudrez certainement éviter cela. Si vous voulez que votre processus de course soit poursuivi sans aucune interruption, vous avez besoin de la commande nohup.

NoHup (signifie No Hangup) est une commande qui ignore le signal Hup. Vous vous demandez peut-être quel est le signal Hup. Il s'agit essentiellement d'un signal qui est délivré à un processus lorsque sa coquille associée est terminée. Habituellement, lorsque nous nous déconnectons, tous les programmes et processus en cours d'exécution sont du raccrochage ou de l'arrêt. Si nous voulons continuer à exécuter le processus même après la déconnexion ou la déconnexion du shell actuel, nous pouvons utiliser la commande noHup. Il rend les processus à l'abri des signaux de hup afin de faire fonctionner le programme même après la déconnexion. Avec NoHup, vous n'aurez plus besoin de vous connecter pendant longtemps juste pour attendre que le processus soit terminé.

Dans cet article, nous expliquerons comment utiliser la commande nohup dans différents scénarios de Linux.

Syntaxe de commande nohup

Pour utiliser la commande nohup, la syntaxe est:

$ arguments de commande nohup

ou

$ NOHUP OPTIONS

Pour trouver l'aide concernant la commande nohup, utilisez la commande suivante:

$ nohup - help

Pour trouver les informations de version de NoHup, utilisez la commande suivante:

$ nohup --version

Démarrer un processus à l'aide de nohup

Si vous souhaitez maintenir une commande ou un processus en cours d'exécution même si vous quittez le shell, utilisez le noHup suivi de la commande pour exécuter:

$ nohup commande

Une fois que vous avez exécuté la commande ci-dessus, toutes les sorties, ainsi que les messages d'erreur, seront ajoutées au noHup.Fichier out dans le répertoire domestique ou dans le répertoire actuel. Maintenant, si le shell est fermé ou que vous vous déconnectez, la commande ci-dessus ne sera pas terminée.

Rediriger la sortie vers un fichier différent

Par défaut, la sortie de la commande Nouhup est ajoutée au noHup.dépose. Pour rediriger cette sortie vers un autre fichier, utilisez> l'opérateur de redirecteur suivi du nom du fichier spécifique. Par exemple, nous avons utilisé la commande suivante pour enregistrer la sortie de la commande nohup sur un nouveau fichier nommé «MyScript.sh ”.

$ sudo nohup ./ mn.sh> myscipt.sh &

Démarrez un processus en arrière-plan à l'aide de nohup

Pour démarrer et mettre le processus en arrière-plan, vous devrez utiliser le noHup comme suit:

$ nohup command &

Le & Le symbole indique au shell d'exécuter la commande en arrière-plan. Il est similaire à la commande nohup ci-dessus, sauf que lorsque la session se termine, il revient immédiatement à l'invite de shell. Pour le ramener au premier plan, utilisez la commande «FG».

La sortie de toutes les commandes que vous exécutez sera annexée au noHup.dépose. Vous pouvez afficher ce fichier à l'aide de la commande Cat nohup dans le terminal. Le nombre 80132 dans la capture d'écran ci-dessus indique le numéro d'identification du processus (PID) du processus fonctionnant en arrière-plan.

Démarrez plusieurs processus en arrière-plan à l'aide de nohup

Vous pouvez exécuter plusieurs commandes en arrière-plan en utilisant la commande noHup. Dans l'exemple suivant, les commandes MKDIR, PING et LS sont exécutées en arrière-plan en utilisant la commande nohup.

$ nohup bash -c 'mkdir fichiers &&
ping -c 1 google.COM && ls '>.SMS

Terminer le processus en cours d'exécution

Pour terminer un processus exécuté en arrière-plan, utilisez la commande kill comme suit:

$ kill -9 pid

Vous trouverez le PID d'un processus lorsque vous utilisez le noHup avec «&». Une autre façon de trouver PID est via la commande pgrep -a. Par exemple, si vous avez exécuté la commande ping avec nohup, il continuera de fonctionner en arrière-plan même si vous fermez le shell. Maintenant, dans ce cas, pour trouver le PID d'un processus de ping exécuté en arrière-plan, utilisez cette commande:

$ pgrep -a ping

Il répertorie tous les processus associés à la commande ping.

Maintenant, pour mettre fin au processus de ping en cours d'exécution, utilisez la commande kill comme suit: $ kill -9 80928so, c'était la brève introduction de la commande nohup dans Linux. La commande noHup est utilisée pour empêcher un processus important d'être terminé lorsque vous vous déconnectez ou fermez la session. Cela aide beaucoup lorsque vous exécutez un processus, en particulier les scripts qui prennent beaucoup de temps à terminer.