[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