Gérez plusieurs terminaux avec Screen

LinuxBeginner
Pratiquer maintenant

Introduction

La commande screen est extrêmement utile pour exécuter plusieurs scripts simultanément en arrière-plan. Cela vous permet de démarrer des tâches longues sans devoir maintenir un terminal ouvert pour chacune d'elles. Dans la suite, nous allons voir comment utiliser screen pour exécuter des scripts en arrière-plan et gérer ces sessions.

Exemple d'utilisation de la commande screen

Exécution de scripts en arrière-plan

Vous avez trois scripts qui effectuent différentes tâches dans ~/project.

Ouvrez le terminal ( ① ou ② dans la figure ) dans l'environnement et entrez la commande suivante :

ls ~/project
Terminal listant les fichiers du projet

Si vous souhaitez exécuter ces 3 scripts en même temps, vous pouvez procéder comme suit :

Trois scripts s'exécutant simultanément

Maintenant, nous allons utiliser screen pour exécuter ces scripts simultanément dans des sessions détachées.

Pour exécuter ces scripts en arrière-plan à l'aide de screen, nous allons utiliser l'option -dmS :

  • -d démarre une session et la détache immédiatement.
  • -m force screen à créer une nouvelle session.
  • -S nous permet de nommer la session pour une référence facile.

Démarrage des scripts

Ouvrez un terminal et accédez au répertoire contenant vos scripts. Ensuite, démarrez chaque script dans une session screen distincte en utilisant les commandes suivantes :

screen -dmS task1./script1.sh
screen -dmS task2./script2.sh
screen -dmS task3./script3.sh

Gestion des sessions

Après avoir démarré les scripts, vous pouvez gérer ces sessions screen avec diverses commandes.

Lister toutes les sessions

screen -ls
Sortie de la liste des sessions screen

Cette commande affichera toutes vos sessions screen en cours d'exécution.

Rejoindre une session

screen -r session_name

Si vous souhaitez vérifier la sortie ou interagir avec un script spécifique, utilisez cette commande pour rejoindre sa session. Remplacez session_name par le nom que vous avez attribué lors du démarrage du script (par exemple, task1, task2 ou task3).

Détacher d'une session

Une fois que vous avez terminé de vérifier une session, vous pouvez vous détacher d'elle et la laisser continuer à s'exécuter en arrière-plan en appuyant sur Ctrl-a puis sur d.

Terminer une session

Pour terminer une session, rejoignez-la en utilisant screen -r session_name puis tapez exit ou appuyez sur Ctrl-d.

✨ Vérifier la solution et pratiquer

Résumé

L'utilisation de screen pour gérer plusieurs tâches en arrière-plan peut considérablement rationaliser votre flux de travail, en particulier lorsque vous avez à faire affaire avec des processus longs ou des processus en arrière-plan. En exécutant des scripts dans des sessions screen détachées, vous maintenez un espace de travail propre et vous assurez que vos processus continuent sans interruption, même si vous vous déconnectez du serveur ou fermez votre terminal.

Expérimentez avec screen pour découvrir comment il peut s'adapter le mieux à votre flux de travail et améliorer votre productivité!