Ao usar usar o terminal do Linux (do nosso servidor, via SSH, por exemplo), você vai descobrir que qualquer tarefa que estiver sendo executada em primeiro plano será morta no momento que você se desconectar do servidor. Isto é ruim se você desejar executar uma tarefa demorada, como por exemplo atualizar os pacotes do servidor. Neste caso você tem duas opções:
- Executar o comando terminando o mesmo com um
&e direcionar a saída para um arquivo com o>(exemplo:comando > arquivo &) - Usar o
screen
Na maioria das vezes a primeira opção não é muito legal, pois você pode querer voltar a ver o que a aplicação que está sendo executada está exibindo, ou até continuar a entrar informações dentro da aplicação, no mesmo estado que você a tinha deixado (exemplo: você poderia estar editando um arquivo de texto e precisar se locomover para outro lugar, perdendo momentaneamente a conexão).
Vamos falar aqui da segunda opção, o screen. O screen é um aplicativo que permite a você usar vários terminais virtuais dentro de um só (da mesma forma que é possível ter vários desktops virtuais dentro do Linux gráfico). O mais legal é que você pode deixar o que estava rodando dentro de uma tela do screen, “desatachar” aquela tela e manter o que estava rodando nela, voltando mais tarde, mesmo depois de ter se desconectado.
Como proceder:
- Inicie uma sessão do screen digitando
screen. Se você preferir, usescreen comandopara já começar a tela rodando o comando desejado. - Se quiser criar outras telas (dentro do screen), basta digitar
CTRL+a+c. - Para alternar entre várias telas criadas, use
CTRL+a+[0-9]ouCTRL+a+n(next) ouCTRL+a+p(previous) - Para fechar uma janela criada use
exit. Se você der exit na última janela aberta sairá do screen e voltará ao terminal comum. - Para sair do screen e deixar o que estava lá rodando digite
CTRL+a+d(detach) - Para voltar ao screen que você tinha deixado aberto (com o detach) digite
screen -r
É bem fácil e muito útil! Brinquem um pouco para ver como é.
Mais informações: http://ubuntu-tutorials.com/2007/05/04/command-line-multitasking-with-screen/