====== 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. --- //[[user:zatalyz|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 [[https://linux.die.net/man/1/screen|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 ===== * [[http://web.archive.org/web/20090419014053/http://linuxhacks.org/tutorials/jakes_gnu_screen_tutorial.php]] * [[https://doc.ubuntu-fr.org/screen|Documention Ubuntu-fr sur Screen]] * [[https://linux.die.net/man/1/screen|Manpage (anglais)]] {{tag>Programmation Serveur Sysadmin}}