LINUX : Introduction à screen


Screen est un gestionnaire de terminaux en mode console.
Screen vous permet d’ouvrir des consoles virtuelles dans une console tty, un xterm, un ssh.

Si les deux premiers paraissent dénué d’intérêt, n’avez vous jamais pesté lors d’une session ssh, parce que vous aimeriez faire plusieurs choses en même temps sans ouvrir dix nouvelles fenêtres ssh ?

Si oui, screen est votre ami :-)

Comme un exemple vaut toujours mieux que de grands discours :

[tj@technojoly /]# screen -Am


  -A : Adapte la taille des terminaux à la taille des fenêtres.

  -m : Force la création d’une nouvelle session.

Vous avez maintenant à l’écran un nouveau prompt qui est en fait une nouvelle console dans laquelle vous pouvez travailler.
Lancez par exemple une commande pour voir un fichier de log se rafraîchir :

[tj@technojoly /]# tail -f /var/log/messages

Une fois fait, nous allons "détacher" le screen par la combinaison de touche C-a d qui signifie ctrl+a d. Et nous revenons à notre premier terminal ssh.
Un petit ps nous permet de voir que tail est lancé :


[tj@technojoly /]# ps aux | grep tail

root     32701  0.0  0.0  1688  544 pts/1    S    15:43   0:00 tail -f /var/log/

Vous pouvez maintenant fermer votre session ssh, votre tail continuera à s’exécuter.

Une fois reconnecté, pour ré-attacher le screen, il faudra utiliser la commande :

[tj@technojoly /]# screen -r

S’il y a plusieurs screen en cours d’exécution, alors, le système vous affichera la liste des screen :


[tj@technojoly /]# screen -r
       31990.pts-0.technojoly      (Detached)

       643.pts-0.technojoly        (Detached)
Type "screen [-d] -r [pid.]tty.host" to resume one of them.

vous utiliserez alors la commande screen -r suivi du numéro de PID.

Vous pouvez également donner un nom à votre screen par :

[tj@technojoly /]# screen -S NOM_DU_SCREEN

Dans ce cas, vous pourrez l’attacher par :

[tj@technojoly /]# screen -r NOM_DU_SCREEN

La commande C-a ? vous affichera l’aide en ligne.
Screen comporte de multiples options. et est paramétrable par le biais d’un fichier .screenrc.

Vous trouverez toutes les informations sur le site de screen et bien sûr avec la commande man screen et info screen.