[gull] Re: screen [WAS: Truc et astuces: Utiliser AT pour ne pas se couper l'herbe sous les pieds]

Kelly Collier collier at fastnet.ch
Fri Jan 23 13:45:18 CET 2009


Hello,

Félix Hauri wrote on 01/23/2009 12:17 PM:
> On Thu, Jan 22, 2009 at 06:59:08PM +0100, Cyril Jaquier wrote:
>   
>> Personnellement, je ne jure que par "screen". Du coup, même pas besoin 
>> de penser à "piper" une commande vers "at" par exemple. Si la connexion 
>> coupe (temporairement bien entendu) c'est pas grave, on retrouve sa 
>> session plus tard sans problème. Pratique pour faire une mise à jour de 
>> Gentoo sur un serveur distant par exemple.
>>     
> Tu prêche un convaincu!
> J'utilise abondament screen, même en local pour ne pas risquer de perdre
> ma console si le serveur X tombe...
>   

Je l'utilise comme ça aussi. C'est vraiment super utile ce programme
dans tous les contextes.

> Mais quand tu te retrouves avec trois sessions de ``ssh + screen'' imbriquées,
> alors entre ``~~.'', ``~~~~.'' et ``~~~~~~~~.'' pour tuer une session ssh
> donnée et des ``^A A ^A A'' et autres ``^A A A'' selon que tu veuille envoyer
> en Ctrl-A à ta 3è session imbriquée ou changer d'écran dans ta 3è session
> imbriquée, tu as de quoi te prendre la tête.
>   

Je ne sais pas si ça te conviendrait comme solution, peut-être que t'as
déjà essayé : Pour éviter ce genre de problème il y a l'option -e, pour
spécifier un  "command character" autre que ^A pour les screens
imbriqués. Par exemple :

box1$ screen -R
box1$ ssh box2
box2$ screen -e^Ee
box2$ ssh box3
box3$ screen -e^Tt

Ainsi, ^A contrôle le screen de la machine locale, et ^E puis ^T pour
les deux autres screens.

-e permet même de changer le command character quand tu te rattaches à
une session screen existante.

> De plus, si ta commande se déroule mal (bug dans ton script ou dans un
> des outils que tu utilise) et que la machine est redémarée de force,
> ton screen disparait *avec* tous les logs et erreurs.
> At génère un mail.
>   

Ah, bien vu.

-Kelly


P.S. Si ça peut servir à qqn ou donner des idées, voici mon .screenrc :

#kill startup message
startup_message off

# define a bigger scrollback, default is 100 lines
defscrollback 1500
encoding UTF-8

# on Debian backspace should send char `177':
bindkey -k kb stuff \177

# An alternative hardstatus to display a bar at the bottom listing the
# windownames and highlighting the current windowname.
hardstatus on
hardstatus alwayslastline
hardstatus string "%{.bW}%-w%{.rW}%n %t%{-}%+w %=%{..G} %H %{..Y} %d.%m %c "

# No annoying audible bell, using "visual bell"
vbell on                # default: off

# Uses nethack-style messages
nethack on                # default: off

# Define the time that all windows monitored for silence should
# wait before displaying a message.
silencewait 15            # default: 30

# Do not use xterm's alternative window buffer, it breaks scrollback
# (see bug #61195)
termcapinfo xterm 'hs:ts=\E]2;:fs=\007:ds=\E]2;screen\007'

# Use vim-style movement to navigate among panes (when screen is split):
bind j focus down
bind k focus up
bind t focus top
bind b focus bottom

# Remove the status bar with `g' when you need the real-estate:
bind g hardstatus ignore
# Re-display the status bar:
bind G hardstatus alwayslastline

# Rebind kill:
bind K kill

# In local machine .screenrc only: Bind the function keys
# to useful functions.
bindkey -k k1 screen     # F1: New
bindkey -k k2 title      # F2: Rename window
bindkey -k k3 other      # F3: Switch to last active window

bindkey -k k4 prev       # F4: Previous window
bindkey -k k5 next       # F5: Next window

bindkey -k k6 resize -3  # F6: Shrink current pane (when screen is split)
bindkey -k k7 resize +3  # F7: Grow current pane (when screen is split)

# I don't bind F8 because I use it to call up the TagList in Vim.
#bindkey -k k8
bindkey -k k9 split      # F9: Split screen
bindkey -k k; focus      # F10: Choose the next pane (when split screen)

bindkey -k F1 remove     # F11: Remove (close) current pane (but not window)
bindkey -k F2 only       # F12: Remove all current panes but the current one




More information about the gull mailing list