Screen : un multiplexeur de terminal
Screen est un multiplexeur de terminal qui, à la manière d’un gestionnaire de fenêtrage, permet à plusieurs programmes en mode texte de tourner en même temps depuis une seule interface, typiquement un terminal local ou distant via ssh (non, rien à voir avec nohup que j’utilise principalement pour certains scripts avec wget).
Installation
Sous Gentoo:
logout@lifthrasir ~ $ su -c "emerge app-misc/screen"
Password:
[...]
Sous Debian:
logout@helghardhr:~$ sudo apt-get install screen
Password for user logout:
[...]
Passons à la pratique
Nous allons créer une session screen pour prendre la main sur un switch:
logout@lifthrasir ~ $ screen -S elivghar
Ici nous avons donc créé une session screen du nom d’elivghar. Nous pouvons vérifier avec la commande screen -ls:
logout@lifthrasir ~ $ screen -ls
There are screens on:
15115.irc (Detached)
15098.elivghar (Attached)
2 Sockets in /tmp/screens/S-logout.
Deux sessions: une détachée (irc), une attachée (elivghar, celle qu’on vient de créer). Le détachement se fait avec Ctrl+A D et la reconnexion avec screen -r elivghar. La session survit au logout: si le SSH coupe, le process continue de tourner dans la session screen et on le retrouve au prochain login.
Les raccourcis indispensables:
Ctrl+A C: nouvelle fenêtreCtrl+A N: fenêtre suivanteCtrl+A P: fenêtre précédenteCtrl+A D: détacher la sessionCtrl+A K: tuer la sessionCtrl+A ": liste des fenêtres
C’est l’outil qui a survécu à toutes les sessions SSH depuis 1987 et qui a fait la fortune des sysadmin qui ne veulent jamais perdre un process de longue durée parce que le SSH a coupé.