Sous linux Screen, est un gestionnaire de fenêtre en mode texte.
Edit : Si vous voulez vous faire une idée rapide de ce que screen peut faire pour vous je vous conseille de visionner mon tutoriel video de screen.
Dit comme cela ce n'est pas très sexy mais si je vous dit que screen permet de lancer plusieurs sessions dans un seul terminal et de switcher de session à volonté ça vous va ?
Non, bon vous êtes difficile à convaincre, je sors l'artillerie lourde : screen vous permet d'exécuter une commande malgré une fermeture de session et de récupérer cette commande dans une nouvelle session, en d'autres termes screen est la commande pour créer des sessions persistantes, ça vous parle ?
Cas ou l'utilisation de screen est indispensable
- Administration d'un serveur par ssh, grâce à screen vous pouvez ouvrir plusieurs sessions shell avec une seule connexion ssh.
- Détacher des commandes de la session, avec screen il devient possible d'exécuter des commandes sans sessions ouvertes.
Installation de screen
pcr@home:$ sudo aptitude install screen
Utilisation de screen pour une session persistante
Lancer screen :
pcr@home:$ screen
Un message de bienvenue s'affiche, appuyer sur la touche [espace] ou [entrée] pour valider, et vous revoilà dans une nouvelle session du genre :
pcr@home:$
Bon rien de fantastique, sauf que cette session est persistante et récupérable et ce n'est pas rien. Par exemple lancer top (ou htop pour se la péter en couleur) :
pcr@home:$ top
L'exécution de top nous donne :
Maintenant appuyer sur la suite de touche : [ctrl] + [a] et [d] pour détacher le screen, vous revoilà dans la session qui a lancé screen au début :
pcr@home:$ screen
[detached]
pcr@home:$
Terminez cette session avec un gentil logout (ou [ctrl] + [d] pour les habitués) :
pcr@home:$ screen
[detached]
pcr@home:$ logout
Maintenant on ouvre un nouveau terminal, ou une nouvelle connexion ssh si vous êtes sur un serveur distant, et on regarde si notre top s'exécute encore :
pcr@home:$ ps aux | grep top
pcr 7803 0.1 0.1 2396 1136 pts/3 S<+ 10:01 0:00 top
Là vous avez la preuve, vous venez de lancer une commande qui s'exécute malgré la fermeture de session. Bon c'est bien beau mais maintenant il faut récupérer ce screen :
pcr@home:$ screen -r
Et là vous retrouver votre top dans le même état que vous l'avez lancé :
Si plusieurs screen sont détachés la commande screen -r affiche la liste des screen :
pcr@home:$ screen -r
There are several suitable screens on:
7861.pts-1.dell (21.02.2009 10:24:31) (Detached)
7850.pts-1.dell (21.02.2009 10:24:25) (Detached)
Type "screen [-d] -r [pid.]tty.host" to resume one of them.
Par exemple pour récupérer le premier screen il faut faire :
pcr@home:$ screen -r 7861.pts-1.dell
Et voilà c'est fini, maintenant quelques commandes de base une fois screen lancé :
[ctrl] + [a] + [d] Détacher le screen ([detached])
[ctrl] + [d] Terminer le screen ([screen is terminating])
Image : Dunechaser