Maison >Opération et maintenance >exploitation et maintenance Linux >Une introduction détaillée à la méthode de configuration permettant de maintenir le processus en cours d'exécution après la déconnexion du client SSH sous Linux

Une introduction détaillée à la méthode de configuration permettant de maintenir le processus en cours d'exécution après la déconnexion du client SSH sous Linux

黄舟
黄舟original
2017-05-26 09:29:505573parcourir

Dans le système du serveur cloud ECS Linux, généralement lorsque nous exécutons certaines tâches qui prennent beaucoup de temps à s'exécuter, nous devons attendre la fin de l'exécution avant de déconnecter la connexion SSH ou de fermer le logiciel client , sinon cela pourrait provoquer une interruption d'exécution. Cet article présente plusieurs méthodes pour garantir que le programme continue de s'exécuter après que l'utilisateur se déconnecte se connecte.

Utilisez le terminal de gestion pour exécuter

Grâce au terminal de gestion, vous vous connecterez au port de session locale (console) du serveur. Les programmes exécutés dans ce terminal ne seront pas affectés par le. sortie de l'utilisateur connecté SSH. La méthode de fonctionnement spécifique est la suivante :

1. Connectez-vous au serveur via le terminal de gestion.

2. Exécutez le programme ou le script requis.

3. La prochaine fois que vous aurez besoin de vérifier le statut d'exécution de la tâche, connectez-vous simplement à nouveau au terminal de gestion pour vérifier.

Utilisez nohup pour exécuter

Le rôle de nohup est, comme son nom l'indique, d'empêcher les commandes suivantes de répondre au signal SIGHUP. En d'autres termes, après avoir exécuté nohup via la connexion à distance, le programme s'exécutera toujours normalement même après la déconnexion. Normalement, la commande nohup sera suivie d'un caractère & à la fin, indiquant que la commande sera exécutée en arrière-plan, afin que la commande puisse être exécutée en continu en arrière-plan.

Exemple d'opération :
1. La commande d'exécution normale est bash hello.sh, et le résultat de l'exécution est un petit programme qui génère une ligne par seconde. :

Une introduction détaillée à la méthode de configuration permettant de maintenir le processus en cours dexécution après la déconnexion du client SSH sous Linux

2. Ajoutez nohup et & au début et à la fin de la commande pour devenir nohup bash hello.sh & Vous pouvez voir que nohup. affiche une ligne d'informations, puis appuyez sur la touche Entrée pour revenir à la ligne de commande du shell. À ce stade, la commande a été exécutée en arrière-plan et nohup redirige la sortie de la commande vers le fichier nohup.out dans le fichier nohup.out. répertoire courant. Notez également que nohup affichera le PID du programme correspondant. Le PID peut être utilisé pour tuer le processus lorsque celui-ci doit être interrompu.

Une introduction détaillée à la méthode de configuration permettant de maintenir le processus en cours dexécution après la déconnexion du client SSH sous Linux

3. Grâce à tail -f nohup.out vous pouvez visualiser en continu la sortie de nohup.out pour obtenir l'effet de surveillance du programme.

Une introduction détaillée à la méthode de configuration permettant de maintenir le processus en cours dexécution après la déconnexion du client SSH sous Linux

4. Vous pouvez également utiliser la redirection dans la commande pour modifier la sortie du programme avec le nom de fichier souhaité, tel que nohup bash hello.sh > ;hello .log &, la sortie du programme sera écrite dans le fichier hello.log.

5. Si le programme ne se ferme pas automatiquement, vous devez utiliser la commande kill pour terminer le processus. Par exemple, vous pouvez utiliser la commande kill -TRM pour opérer, où PID est la valeur sortie par nohup auparavant, dans cet exemple, la valeur est 1231.

Restrictions d'utilisation :

nohup est généralement utilisé pour exécuter des programmes ou des scripts automatisés sans intervention et ne peut pas effectuer d'opérations avec interaction.

Utiliser l'écran pour exécuter

Installer l'outil d'écran

Le système Linux n'est pas livré avec l'outil d'écran par défaut, vous vous devez d'abord l'installer :

  • Systèmes de la série CentOS :

    écran d'installation miam

  • Systèmes de la série Ubuntu :

    sudo apt-get install screen

Introduction à l'utilisation de

Créer une fenêtre d'écran

screen -S  name
# name可以设置为ssh、ftp,用于标注该 screen 窗口用途
# 示例:screen -S ftp
2. Répertoriez le processus d'écran et entrez l'écran requis

screen -ls  ##列出 screen 进程列表
comme indiqué ci-dessous


Une introduction détaillée à la méthode de configuration permettant de maintenir le processus en cours dexécution après la déconnexion du client SSH sous Linux

, puis effectuez les opérations requises, telles que l'exécution de scripts, l'exécution. programmes, etc

Comme indiqué ci-dessous : Créez une connexion FTP pour télécharger et transférer des fichiers en arrière-plan

Une introduction détaillée à la méthode de configuration permettant de maintenir le processus en cours dexécution après la déconnexion du client SSH sous Linux

Quitter et enregistrer

Après le L'exemple d'opération FTP ci-dessus démarre le transfert, tapez les touches Ctrl+a dans la fenêtre, puis appuyez sur la touche d pour quitter la connexion SSH, mais cela n'affectera pas l'exécution du programme d'écran.

4. Enregistrez la session pour continuer

Vous pouvez utiliser la fonction écran pour gérer les sessions à distance. Aperçu des étapes de fonctionnement :

  • Connexion SSH normale au serveur

  • Créer une fenêtre d'écran

  • Requis pour l'exécution Lorsque la tâche

  • doit être temporairement interrompue et quittée, appuyez sur Ctrl + d pour enregistrer et quitter

  • Quand vous en avez besoin continuez à travailler, connectez-vous à nouveau au serveur via SSH, puis exécutez directement

    screen -r -d Reprenez simplement la session.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn