Processus en cours d`exécution en arrière-plan avec nohup

Je travaille sur des serveurs distants beaucoup. J`utilise SSH pour se connecter à mes serveurs. Très souvent, je lance un processus que je dois laisser courir même après que je ferme ma connexion SSH. Cela pourrait être un script shell qui parse dans mes fichiers journaux ou très grande restauration de la base de données MySQL. C`est quand je me tourne vers un utilitaire de ligne de commande Linux appelée « nohup ». « Nohup » est l`abréviation de « non raccrochage », ce qui se traduit par « ignorer le signal raccrocher ». Le signal « raccrocher » est ce qui se passe lorsque vous vous déconnectez. Qu`est-ce que « nohup » fait est qu`il vous permet de vous connecter à votre serveur, lancez un processus et déconnexion. Le processus continue de fonctionner même après avoir déconnecté. Lorsque vous vous connectez à nouveau, vous pouvez accéder à nouveau ce processus, à condition que son toujours en cours d`exécution.

La syntaxe de base de « nohup » est:

# nohup [commande] &

Remplacer « [commande] » avec le nom de votre script shell, ou une commande. Le "&» À la fin rend la commande ou script exécuté comme un processus d`arrière-plan. Voici un exemple de la façon dont vous utilisez « nohup » pour prendre une sauvegarde d`une grande base de données MySQL sur votre serveur distant. Tout d`abord, je me connecte à mon serveur distant en utilisant SSH:

# ssh [email protected]

Video: Accentuation de netteté et de bokeh avec Lightroom

Ensuite, j`exécute la commande « mysqldump -ucalvin -phobbes largedatabase gt; largedatabase.db » dans le « mode » en ajoutant une « nohup nohup » avant «&» Après la commande:

# nohup mysqldump -ucalvin -phobbes largedatabase gt; largedatabase.db &
[1] 3999
# Nohup: sortie `annexant nohup.out »

Il y a deux lignes de sortie que vous obtenez. Le « 3999" dans la première ligne est l`ID de processus du processus que je viens a donné naissance, alors que le « nohup: sortie` annexant nohup.out ` » signifie que l`eteint qui viennent le plus souvent du terminal est transmis en un fichier appelé « nohup.out » dans le répertoire à partir duquel vous avez lancé la commande. Vous pouvez vérifier si le processus est toujours en cours en effectuant une recherche par tous les processus en cours d`exécution en utilisant l`ID de processus:

# ps -ef | grep 3999
calvin 3999 29848 0 18:42? 00:00:00 / usr / bin / mysqldump
Calvin 6575 31852 0 18:44 pts / 2 00:00:00 3999 grep

Lorsque le processus est terminé, vous verrez en cours d`exécution d`une sortie dans la ligne de commande comme ceci:

[1] + Fait nohup mysqldump -ucalvin -phobbes largedatabase gt; largedatabase.db

Video: Plan d'exécution Oracle

Vous pouvez consulter le fichier « nohup.out » pour vérifier d`éventuelles erreurs ou d`autres messages qui ont été émis pendant le processus était en marche. Si le fichier reste vide qui est correct. Cela signifie qu`aucun message ne sortie alors que le processus en cours d`exécution.

Articles connexes