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 ?
Bonsoir,
je pense que cette fonction n’est pas forcement utile ,
autant utiliser crt+shift+t pour afficher un onglet de plus
et crt+shift+n pour afficher un nouveau terminal, alors cette fonction….
??? Ça n’a juste rien à voir… Là on parle de lancer une commande, en général à distance sur un serveur, eh de pouvoir tout fermer et revenir plus tard. Une nouvelle fenêtre, un nouvel onglet, c’est pour faire mumuse sur un ordinateur…
Bonsoir, J’ai un serveur Maniaplanet avec Xaseco2, sur un Nas synology DS214Play. Je rencontre un problème avec Xaseco2, quand je quitte le terminal SSH (Putty) Xaseco2 cesse de fonctionné. Je pence que la méthode est la solution à mon problème, mais je ne comprend pas comment il faut si prendre?
Salut,
oui alors dans un contexte NAS, aucune idée car les dernières fois que j’ai joué avec ce type de matériel, il n’y avait pas forcément toute la panoplie d’outils linux qu’on aimerait.
Toujours est il, s’il y a sur ce NAS un accès SSH, s’y connecter et voir si la commande screen répond. Si oui, banco. Sinon voir si ça peut s’installer.
Au pire, mais c’est peu foireux :
1) lancer le serveur genre ./mon_serveur.sh -blabla & # le & pour lancer en tâche de fond et advienne que pourra (on ne peut plus reprendre la main)
2) voir s’il y a un truc pour ajouter des programmes complémentaires sur ce NAS et voir si des paquets sont dispo, dont screen
bonne chance
Ok dac,
Merci bien pour cette réponse rapide, et ces quelques infos qui vont probablement beaucoup m’aider ! 🙂
Je vais regarder tout ça.
A première vue la commande « screen » ne fonctionne pas sur mon terminal « SSH ».
Milton a parlé de « débian » qui existe en paquet pour les « Nas Synology », et « IPKG » existe aussi. (Rien à voir j’imagine? Je ne trouve plus où j’ai vu parler de « IPKG »)
PS: Je suis débutant, je possède ce Nas Synology depuis quelques mois seulement, et découvre que depuis peu les joies des systèmes « Linux ». Si vous pourriez me guider vers des tutoriaux pour faciliter mes recherches ce serait TOP.
ipkg, c’était ça
par contre c’est tout ce qu’il m’en reste comme souvenirs. Mais ça permettait en effet d’installer d’autres outils complémentaires qui manquait dans le linux de base embarqué dans le NAS
cherchez sur google avec votre modèle (ou fabricant) + ipkg + screen par exemple
bonne chance