Lancer une commande en SSH, et la laisser tourner une fois déconnecté

Lancer une commande en SSH, et la laisser tourner une fois déconnecté

Si vous avez l’habitude de vous connecter à des serveurs en SSH, vous savez ce que c’est de devoir rester connecté pour qu’une commande ou un processus ne s’arrête pas. Il existe une solution bien pratique pour pouvoir lancer une commande, et soit la reprendre plus tard, ou la laisser tourner en parallèle avec la commande screen

Préparation du système

Tout d’abord, installer le package screen via le gestionnaire de paquet.

sudo apt install screen
En principe, le package est déjà installé sur certaines distributions, notamment Ubuntu

Lancer une commande dans un screen détachée

Le principe de l’opération est de créer un écran virtuel où la commande sera exécutée. Cela signifie que son exécution ne sera pas dépendante de la connexion SSH établie depuis laquelle la commande sera lancée.

Pour ce faire, lancer la commande:

screen -dmS SCREENAME COMMANDE
Remplacer SCREENNAME avec un nom souhaité (permet de différencier les différents screen), et la commande souhaitée à la place de COMMANDE.
Pas besoin de la mettre entre guillemets

Une fois la commande exécutée, elle se lance immédiatement dans un screen détaché, et est déjà en train de tourner. Pour se connecter à un screen détaché, cela se fait en 2 étapes:

Tout d’abord, afficher la liste des screens actuellement en train de tourner

screen -ls

Cette commande affiche ainsi une liste comme ci-dessous par exemple:

There are screens on:
        435253.check_integrity  (12/04/2025 04:15:20 PM)        (Detached)
        380843.delete_doublon   (12/04/2025 04:08:43 PM)        (Detached)
2 Sockets in /run/screen/S-localadmin.

Les numéros qui sont avant le point est le PID du processus, et après le point est le nom du screen donné précédemment.

Dans notre exemple, nous souhaitons se connecter au premier screen qui s’appelle check_integrity. la commande à taper est donc:

screen -r 435253.check_integrity
La commande screen -r signifie « rattacher », et va donc se connecter à l’écran virtuel pour afficher le contenu

Une fois que nous avons fini avec le screen, et que nous devons de nouveau s’en détacher, il suffit de saisir le raccourcis clavier CTRL + A, et ensuite D

Appuyez d’abord sur CTRL + A, et après avoir relâché ces deux touches appuyer sur la touche A

Et voila, notre screen est de nouveau détaché, et fonctionne en arrière plan. Il est maintenant possible de se déconnecter du serveur sans interrompre l’exécution des screen.