GNU/Linux >> Tutoriels Linux >  >> Linux

nohup :commande introuvable

La commande nohup ("no hangup") empêche un processus de se terminer lorsque l'utilisateur se déconnecte. Par exemple, si un administrateur lance un script de sauvegarde, puis se déconnecte du système, le script cessera de s'exécuter. En plaçant la commande nohup devant la commande normale, le script continuerait même après la déconnexion de l'administrateur.

Syntaxe

La syntaxe de la commande nohup est :

# nohup {command/script}

Si vous rencontrez l'erreur ci-dessous lors de l'exécution de la commande nohup :

nohup: command not found

vous pouvez essayer d'installer le package ci-dessous selon votre choix de distribution :

Répartition Commande
OS X brew install coreutils
Debian apt-get install coreutils
Ubuntu apt-get install coreutils
Alpin apk ajouter coreutils
Arch Linux pacman -S coreutils
Kali Linux apt-get install coreutils
CentOS yum install coreutils
Fédora dnf install coreutils
Raspbian apt-get install coreutils

Exemples

1. Exécuter nohup sans spécifier de fichier de sortie

Prenons un exemple et testons qu'il continue de fonctionner après votre déconnexion. Nous allons lancer un script appelé script.sh. Le contenu du script est le suivant :

# cat script.sh
#!/bin/sh
while(true)
do
	echo "Hello World!"
	sleep 10
done

Exécutons le script dans backgroupd avec la commande nohup :

# nohup script.sh & 
[1] 179 
$ nohup: appending output to `nohup.out`

Comme vous pouvez le voir ci-dessus, nous n'avons pas spécifié de fichier de sortie. Ainsi, la sortie standard et l'erreur standard vont par défaut dans le fichier nohup.out dans le répertoire à partir duquel le script a été invoqué. Aussi le nombre 179 Spécifie l'ID de processus (PID) de la tâche. Ce PID peut être vérifié dans la sortie de la commande "ps -ef" comme indiqué ci-dessous.

Quittez maintenant le shell, reconnectez-vous et exécutez la commande suivante :

$ ps x | grep script.sh
179  ?   S N  0:01 sh /root/script.sh 
506  p2 S     0:00 grep script.sh

Le script fonctionne toujours. Utilisez « ps -ef | grep ps1" si votre système ne prend pas en charge ps x. Vous pouvez également vérifier le fichier de sortie nohup.out pour plus de confirmation.

# cat nohup.out
Hello World!
Hello World!
Hello World!
Hello World!
...
REMARQUE :Si vous exécutez une autre commande à l'aide de nohup, la sortie est ajoutée au fichier nohup.out existant. Soyez prudent lorsque vous exécutez plusieurs commandes à partir du même répertoire, car toute la sortie est envoyée au même fichier nohup.out, ce qui peut prêter à confusion.

Exécuter nohup en spécifiant un fichier de sortie

Maintenant, le script ci-dessus peut également être exécuté avec la commande nohup et en spécifiant un fichier de sortie personnalisé comme indiqué ci-dessous :

# nohup script.sh > /tmp/script.out 2>&1
[1] 14235

Conclusion

Si vous exécutez un processus et que vous pensez qu'il ne sera pas terminé au moment où vous vous déconnectez pour la journée, utilisez la commande nohup. Nohup continuera le traitement lorsque vous quitterez votre compte. Nohup signifie pas de raccrochage .


Linux
  1. gestionnaire d'abonnement :commande introuvable

  2. dnf :commande introuvable

  3. bc :commande introuvable

  4. dpkg :commande introuvable

  5. id :commande introuvable

nc :commande introuvable

aws-shell :commande introuvable

netstat :commande introuvable

kubectl :commande introuvable

tvservice :commande introuvable

ln :commande introuvable