Le mardi 7 janvier 2003 par arnaud LUQUIN

Initiation à l’utilisation de screen + BitchX

Je ne travaille pratiquement jamais directement sur ma machine, celle ci ne me sert d’ailleurs plus de terminal et de jukebox qu’autre chose.

J’ai donc besoin parfois de reprendre une session depuis un autre endroit sans perdre ce que je faisait avant (autrement dit reprendre mon travail là ou il en etait, sans devoir quitter les logiciels utilisés, par exemple, poursuivre la erdaction d’un mail ou retrouver ma session d’IRC sans en perdre une miette).

Pour cela screen a été LA solution à tous mes problèmes.

Je vais tenter de vos exposer dans cet article ce que je sais de screen (meme si la documentation fera cela beaucoup mieux que moi) et prenant un exemple concret.


I - QUESAKO ?

Screen est un gestionnaire de consoles virtuelles. Il permet une fois lancé de créer dans la même consoles, plusieurs consoles virtuelles, de passer de l’une a l’autre, de les nommer, et surtout possède la fonction plus qu’interessante d’être détaché pour être rattaché plus tard.

II - COMMENT QUE CA S’INSTALLE LA BETE ?

Pour utiliser screen vous devez au préalable l’installer sur votre machine.

Les utilisateurs Debian utiliseront leurs Dpkg préféré :

apt-get install screen

Les utilisateurs de Redhat ou autre Mandrake préfèrerons eux utiliser le RPM concu a cet effet.

rpm -Uvh screen-3.9.11-3.i386.rpm

Enfin les puristes compilerons le code : screen-3.9.11.tar.gz

III - MAIS COMMENT CA MARCHE ?

L’installation s’est bien passée, pas de pb de compilation ? parfait.

Nous pouvons passer a la phase d’utilisation de screen.

Pour commencer vous devez lancer le gestionnaire.

Pour cela vous dites a screen de se connecter :

[birdy@jessica] birdy $ screen -l

normalement vous ne devriez rien voir de plus flagrant qu’un écran vide :) si c’est le cas c’est que vous êtes bien connecté.

Nous allons maintenant commencer par créer un nouveau terminal. Screen Bind sa touche de contrôle par défaut sur le CTRL+A (cequi est pénible a force et peut être contourné)

Pour créer un nouveau term, tappez la combinaison suivante : CTRL+A c (c pour create)

Pareil ici rien de fulgurant. afin de vous permettre de voir qqch tappez ls par exemple..

vous venez de demander le ls du rep courant dans le terminal 2.

Bon maintenant regardons ce qui se passe dans le terminal 1. Pour cela, Tappez : CTRL+A [SPACE] cette action vous fait passer au terminal suivant (et CTRL+A [DELSPACE] vous permet de passer au term précédent).

vous pouvez donc passer d’un term a un autre de cette manière. Ainsi vous economisez les fenetres, les utilisateurs de Kterm ou autre gestionnaire de term de ce type ont l’habitude cliquer sur l’onglet du term, c’est a peu pres le meme principe).

Chaque terminal prenant également un numéro il est tt a fait possible de passer de l’un à l’autre en demandant son numéro, par exemple CTRL+A 1 appelera le premier term, et CTRL+A 4 le quatrième term.

Bien, maintenant que nous savons naviguer de l’un a l’autre nous allons passer a la notion de détachement et d’attachement.

Lorsque votre screen est actif, vous pouvez le détacher. Pour cela nous allons utiliser la combinaisons de touche suivante :

CTRL+A d

ceci devrait effacer le contenu de votre term, afficher ce qu’il y’avait dans le terminal ou vous avez lancé screen et faire apparaitre un message vous indiquant que votre screen est bien détaché comme ceci :

[birdy@jessica] birdy $ screen -l
[detached]
[birdy@jessica] birdy $

Votre session est donc bien détachée. Si vous regardez au niveau des processus vous vous rendrez compte que ceux ci ne se sont pourtant pas arrétés, par exemple sur ma machine un terminal virtuel tourne avec un client de courriel, le screen est bien détaché mais les processus tournent toujours :

birdy     5359  0.0  0.8  2964 1364 ?        S    13:34   0:00 SCREEN -l
birdy     5360  0.0  1.0  3080 1672 pts/14   S    13:34   0:00  \_ /bin/bash
birdy     5374  1.6  1.0  3460 1680 pts/14   S    13:36   0:00  |   \_ mutt
birdy     5365  0.0  1.0  3072 1644 pts/15   S    13:34   0:00  \_ /bin/bash

Par ailleurs on sait qu’un screen existe en demandant a screen quels sont les sessions actives :

[birdy@jessica] birdy $ screen -ls
There is a screen on:
       5359.pts-7.jessica      (Detached)
1 Socket in /var/run/screen/S-birdy.

[birdy@jessica] birdy

J’ai donc un screen actif (mais détaché) sur ma machine actuellement.

pour le rattacher, je vais utiliser la commande suivante : screen -dR, magiquement je retrouve tous mes terms.

Vous savez donc maintenant attacher/détacher un screen, créer de nouveaux terminaux.

Maintenant il ne vous reste plus qu’à l’utiliser.

Connectez vous sur une machine, lancer vos travaux dans un screen, détachez le screen, reconnectez vous sur cette machine depuis une autre machine et rattachez votre screen, magique non ? Non plutot pratique :)

IV - MAIS J’UTILISE CTRL A POUR AUTRE CHOSE MOI, COMMENT BINDER SCREEN SUR UNE AUTRE TOUCHE ?

Pas de panique, il est possible de dire a screen de binder sa touche de controle sur autre chose que la touche A.

Pour cela détachez le et tappez :

screen -e^Xx -dR pour que la touche de controle devienne X par exemple.

V - COMMENT JE TUE UN TERM VIRTUEL ?

Pourquoi tant de haine ? pour tuer un term il suffit de dire a screen de le faire (CTRL+A K (majuscule) ou tout simplement de vous délogguer 5CTRL+D) comme sur un terminal normal.

Voila pour cette initiation, j’ajouterais d’autres choses comme comment nommer un term par ex plus tard.

Cette article est bien entendu ouvert à commentaires.

Répondre à cet article

  • > Initiation à l’utilisation de screen + BitchX

    Nicolas le mardi 17 juin 2003

    A mettre dans votre .screenrc :

    hardstatus string "%r%c%k | %w% ? (%h)% ?"
    hardstatus alwayslastline

    ça ajoute une barre d’etat a la windows plus l’heure, vraiment c’est excellent.

    Répondre à ce message

    • > Initiation à l’utilisation de screen + BitchX

      le mercredi 2 juin 2004

      Je préfère :

      hardstatus alwayslastline
      hardstatus string " %wb%-w%wr%n %t%-%+w %=%D %d %M %y %c "

      Enfin, Control-Z est un raccourci heureux, puisqu’il devient complètement
      inutile de passer un processus en tâche de fond.

      Répondre à ce message

  • 2 questionssur l’utilisation de screen

    neofutur le vendredi 25 juin 2004

    question 1 :

    il ne m est pas possible de faire un su - dans le screen, le login marche mais il n’arrive pas a lancer un bash c normal docteur ?

    question 2 :

    si ma connection ssh se fait killer sans que j’aie detache les screens, ca marche quand meme pour le reattacher ?

    Répondre à ce message

    • > 2 questionssur l’utilisation de screen

      arnaud LUQUIN le dimanche 27 juin 2004

      Concernant la question 1 non ce n’est pas normal, peut tu nous donner quelques idées de ce que donne les logs ?

      Concernant la question 2 oui si ta connexion SSH meurt ce qui m’arrive souvent, tu peux tout a fait rattacher ton screen, cela fait partis de l’intérêt que je trouve a screen.

      Attention par contre il m’est arrivé quelques fois que le ssh crash méchament, et que le screen soit dans un état irrécupérable. Tu devra dans ce cas le tuer par un screen -wipe. et malheureusement relancer tes processus.

      Je te rassure depuis deux ou trois ans maintenant que j’utilise screen, cela n’a du m’arriver pas plus de 10 fois.

      Répondre à ce message

Les fortunes de #epplug. Retrouvez les membres de notre association sur notre salon IRC: irc.geeknode.net #epplug
Voici quelques extraits amusants (Télécharger le fichier de fortune)

Association Picarde des Utilisateurs de Logiciels Libres (EPPLUG) ­ Association régie par la loi 1901
137, avenue du général FOY 80000 AMIENS.
Parution au Journal Officiel le 21/06/03 sous le n° 20030025 ­ Siren : 494 525 280

© epplug.org 2002-2005 - ce site fonctionne grace au moteur d'edition collaboratif SPIP fonctionnant sous license GPL

ADMIN

Toutes les interventions sur ce site sont la propriété de leurs auteurs respectifs.