Introduza o termo a pesquisar e clique Enter.

Screen tricks

Abr 09 26

Escrito por Dextro @ 26/04/09 15:04 | Comentar »

Recentemente lá no emprego alguém se deu ao trabalho de me mostrar a luz sobre uma ferramenta essencial que tenho estado a ignorar totalmente em todos estes anos que tenho usado linux (e demais *nix): o screen.

Para quem não conhece o screen deixo uma pequena explicação: o screen funciona como um gestor de múltiplos terminais dentro da mesma janela (uma especie de “tabs” na cli) e para além disso serve também para manter as aplicações a correr quando saímos da sessão (algo bastante útil quando o wireless decide falhar ou o pc decide empancar por causa de um controlador IDE estragado).

Eu experimentei e devo dizer que estou totalmente rendido á sua utilidade mas, como sempre, foram muitas as vezes que dei por mim a entrar numa maquina, começar o que queria fazer e só a meio me lembrar que dava jeito ter o screen a correr para poder ir fazer outra coisa qualquer. Para resolver esta situação decidi forçar-me a mim próprio a usar o screen e como tal fiz um pequeno script para colocar no .bashrc que resolve a situação:


if [[ $TERM == 'xterm' ]]; then
        if [[ `screen -list | grep Detached | wc -l` == 0 ]]; then
                if [ ! ${SSH_TTY} ]; then
                        exec screen
                else
                        screen
                fi
        else
                if [ ! ${SSH_TTY} ]; then
                        exec screen -dRR
                else
                        screen -dRR
                fi
        fi
fi

Este pequeno script muda a minha sessão de bash para o screen sempre que entro numa consola local (mas não abre o screen dentro do screen) ou então simplesmente corre o screen se estiver a usar ssh para aceder á maquina. Basicamente a diferença é: em máquinas locais exit sai da sessão enquanto que nas remotas exit sai apenas do screen mas mantém a sessão (NOTA: ainda não testei isto).

Como bónus ele detecta se existem sessões ligadas mas inactivas na maquina em questão e religa-se a uma delas caso assim seja (infelizmente ainda é aleatória esta parte).

Para complementar falta o script que arranjei num blog para adicionar uma pequena barrinha na parte inferior da consola com uma lista das “tabs” do screen, data e hora e, acima de tudo, o hostname da maquina onde o screen está a correr:


caption always "%{= kw}%-w%{= BW}%n %t%{-}%+w %-= @%H - %LD %d %LM - %c"

E estou pronto a usar o screen permanentemente nas minhas sessões. Espero que isto ajude alguém por aí como me ajuda a mim.

Comente!






Ajuda

Nome:

Preencha o seu nome para assinar o comentário. O preenchimento deste campo é obrigatório.

Os comentários são as suas ideias ou opiniões em relação ao artigo que acabou de ler. Assine o seu comentário para dar a conhecer o seu ponto de vista.

E-Mail:

O seu endereço de e-mail não será publicado. O preenchimento deste campo é obrigatório.

Este site suporta a utilização de gravatars. Caso o seu endereço de e-mail esteja registado em gravatar.com, irá aparecer a sua imagem ao lado do comentário.

Site:

Se tiver um website, este é um bom local para o publicitar.

Sempre que alguém ler o seu comentário, irá ver um link para o seu site. Se o seu comentário for relevante para os outros utilizadores, com certeza eles quererão saber mais sobre si e visitarão o seu site.

Protecção Anti-Spam

Efectue uma pequena soma para confirmar que o seu comentário não se trata de spam.

O preenchimento deste campo é obrigatório.

Comentário

Este formulário permite o uso de algumas tags em HTML5. As tags permitidas são as seguintes:

<a href="" title="">
<abbr title="">
<blockquote cite="">
<code> <em> <del> <ins>
<strong>