J’explique très succintement quelques commandes majeures de cet outil qui permet de « détacher des sessions shell du terminal où vous les avez lancées ».
En clair : lorsque vous avez des outils en mode texte sur lesquels vous devez pouvoir revenir à distance et plus tard, vous lancez vos commandes dans un « screen » et lorsque vous fermez votre terminal (session putty distante, locale dans un xterm etc), la session reste stockée quelque part et vous pourrez la reprendre de manière interactive (clavier) plus tard.
C’est pratique pour gérer de lourds transferts FTP en mode texte (genre lftp) et surtout – dans mon cas – pour gérer mes serveurs de jeux online ![]()
Je vais bientôt poster 2/3 articles sur la mise en place de quelques serveurs de jeux online et « screen » est un outil indispensable.
Le principe de base :
Vous lancez une session en lui donnant un nom :
screen -S ma_session
On ne le remarque pas trop quand on n’est pas habitué, mais ça ouvre un autre shell.
Vous faites ce que vous avez à faire dedans, ici on va se limiter à une commande ls histoire de faire afficher quelque chose.
Puis vous « détacher » la session grâce à la combinaison de touches CTRL-A puis D (sans lâcher CTRL).
Ca vous sort de la session et vous voyez le mot :
[detached]
Vous pouvez alors lister vos sessions :
screen -ls
There are screens on:
20850.ma_session (Detached)
1 Socket in /var/run/screen/S-toto.
Les numéros sont les PID des shells correspondant à votre session.
Pour reprendre une session (on va nettoyer l’écran pour bien se rendre compte : commande clear)
screen -r ma_session
Et là vous retrouvez votre session de toute à l’heure, avec le contenu du ls.
Ok ? principe pigé ?
Documentez-vous sur le paramètre « -x », il est terrible celui-là ainsi que sur la combo de touches à faire pour pouvoir remonter dans l’historique de la session, à base de CTRL-A + Esc + CTRL-U ou D. Enfin bref, je ne m’en souviens jamais

Comment peut-on faitre pour lancer une appli dans screen au boot ?
RTFM ?
Exemple : screen -S toto -d -m tail -f /var/log/syslog
Ensuite screen -ls pour contrôler
On peut remplacer -d par -D, ça fait en sorte que le screen ne termine pas quand la commande (dans l’exemple : tail -f) termine.
Ensuite, pour automatiser, il faudrait encapsuler tout ça dans un joli script, le coller dans /etc/init.d, faire les raccourcis /etc/rc?.d qui vont bien.
J’ai pas trop cherché, ma machine reboot peu/pas
Pour automatiser la creation du script automatique, debian dispose de update-rc.d.
Bonjour,
comment faire pour tuer le screen quand on en a plus besoin ?
(il doit bien y avoir une commande simple non sans passer par un kill?)
dans la session, un simple ctrl-d ou exit ? ou j’ai mal compris la question ?