Outils du site

fr:screen

Screen, multiplexeur de terminal

Screen est assez utile pour les sysadmin, principalement dans deux cas :

  • Lorsqu'on lance une commande qui peut durer longtemps (genre un gros rsync), si la connexion ssh est fermée, la commande continue de s'éxécuter dans screen et on peut y retourner pour voir où ça en est
  • Si on est deux ou plus sur un serveur, cela permet de partager son écran et voir ce qui arrive à l'autre, ce qui est utile en cas de problème ou dans le cadre de l'apprentissage.

Screen n'est pas le seul logiciel à faire ça, il y a des choses plus récentes (Tmux ou Byobu par exemple), mais ça reste une référence dans le milieu des sysadmin.

Il y a de la doc un peu partout sur comment marche le truc, mais je galère à chaque fois à retrouver quelques trucs simples… donc je note ça ici, et en français. — zatalyz 2018/04/30 10:02

Commandes de base

Démarrer un screen :

screen -S nom_du_screen

Se détacher pour scroller :

  • ctrl+a et echap

Quitter le screen (“se détacher”) sans fermer ce dernier

  • ctrl+a suivi de d

Se rattacher à un screen ouvert

screen -r nom_du_screen

On fait aussi screen -DR mais je ne comprends pas trop le man à ce sujet.

Partager avec d'autres utilisateurs

Il est possible de partager une session screen avec des utilisateurs connectés sous leur propre nom, sur la même machine.

Merlin veut partager sa sessin avec Zatalyz. Il créé sa session :

screen -S partagee

Puis il va activer l'option “multiuser” :

  • ctrl+a :multiuser on

Ce genre de commande se fait en passant la combinaison de touches “CTRL+a” puis en faisant : suivi de la commande écrite.

Ensuite il donne l'accès à zatalyz

  • ctrl+a :acladd zatalyz

L'utilisateur zatalyz pourra lister les sessions screen auxquelles elle peut se connecter :

screen -list merlin/     # (le / est important)

S'affiche alors une liste contenant au minimum la session nommée partagee. zatalyz peut s'y connecter comme suit :

screen -x merlin/partagee

merlin pourra voir les utilisateurs connectés à sa session screen :

  • ctrl+a *

Une fois la session partagée finie merlin peut révoquer l'accès de zatalyz avec :

  • ctrl+a :acldel zatalyz

Problèmes

Il se peut que l'erreur suivante se produise lorsqu'on veut lister les sessions screen (screen -list merlin/) :

Directory '/run/screen' must have mode 755.

Dans ce cas, il suffit de faire ce qui est indiqué, en tant que root évidemment sinon ça ne fonctionne pas :

sudo chmod 755 /run/screen

L'opération est à répéter après un reboot. Une solution définitive doit exister, mais vu qu'on ne partage un screen que ponctuellement, le jeu n'en vaut pas la chandelle.

Sources et liens utiles

fr/screen.txt · Dernière modification: 2018/04/30 08:32 par zatalyz