Tous les produits
Search
Centre de documentation

:Keep processes running on Linux after an SSH disconnect

Dernière mise à jour :Aug 18, 2026

Choisir une solution

Pour qu'une commande continue de s'exécuter après la fermeture de votre session SSH, choisissez l'une des solutions suivantes :

Solution 1 : Utiliser les commandes nohup et &

La commande nohup permet à un processus de continuer à s'exécuter après la fermeture du terminal, tandis que le symbole & envoie le processus en arrière-plan.

  1. Exécutez la commande en arrière-plan.

    Cette commande redirige à la fois la sortie standard et les erreurs vers [your_log_file].

    sudo nohup [your_command] >[your_log_file] 2>&1 &
    Par exemple, pour exécuter bash hello.sh en arrière-plan et écrire la sortie dans un nouveau fichier nommé output.log dans le répertoire courant, exécutez la commande suivante : sudo nohup bash hello.sh > output.log 2>&1 & .
  2. Consultez la sortie de la commande.

    sudo tail -f [your_log_file]
  3. Arrêtez le processus.

    Important

    L'arrêt du processus met fin à la commande ou à la tâche. Procédez avec prudence.

    1. Recherchez l'ID de processus (PID). Remplacez [your_command] par la commande que vous avez exécutée à l'étape 1.

      sudo ps aux | grep "[your_command]"
      Par exemple, si vous avez exécuté sudo nohup bash hello.sh > output.log 2>&1 & , vous devez exécuter sudo ps aux | grep "bash hello.sh" pour trouver son PID.
    2. Utilisez la commande sudo kill [PID] pour arrêter le processus.

Solution 2 : Utiliser GNU screen

  1. Installez GNU screen.

    • Pour Alibaba Cloud Linux et CentOS

      sudo yum install -y screen
    • Pour Debian et Ubuntu

      sudo apt-get install -y screen
  2. Créez et accédez à une nouvelle session.

    [Name] correspond au nom personnalisé de votre session.

    screen -S [Name]
    Par exemple, pour créer une session nommée mysession , exécutez sudo screen -S mysession .
  3. Exécutez votre tâche dans la nouvelle session.

  4. Détachez la session.

    Appuyez sur Ctrl+A+D pour détacher la session screen actuelle.

  5. Reprenez la session.

    1. Répertoriez les sessions screen disponibles pour trouver le PID de la session cible.

      sudo screen -ls
      There is a screen on:
              2046.mytask     (Detached)
      1 Socket in /run/screen/S-root.

      Dans cet exemple, le PID de la session est 2046.

    2. Reprenez la session.

      Remplacez [PID] par le PID de la session obtenu à l'étape précédente.

      sudo screen -r -d [PID]
      Par exemple, pour reprendre la session dont le PID est 2046, exécutez sudo screen -r -d 2046 .
  6. Arrêtez la session.

    Important

    L'arrêt d'une session met également fin à toutes les tâches et commandes en cours d'exécution au sein de celle-ci. Procédez avec prudence.

    Remplacez [PID] par le PID de la session.

    sudo kill [PID]