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>