Executei um script na linha de comando hoje (php, não tenho certeza se isso importa) que tem uma saída que eu queria assistir, mas tive que ir para casa antes de terminar e não consegui descobrir como sair sem interromper o script. Normalmente eu apenas fecho o laptop (hiberno), mas não parece que o script foi concluído.
Existe alguma combinação de teclado que eu possa pressionar para sair do terminal e deixar o script em execução? Ele também imprime um arquivo de log para que eu possa verificá-lo mais tarde.
Responder1
O método mais direto para que seus scripts continuem após o encerramento de uma sessão shell é usar um programa multiplexador de terminal. Um multiplexador de terminal permitirá que você execute várias sessões de shell simultaneamente sem estar ativamente conectado a cada uma delas, mesmo depois de desconectar (desconectar) delas. Os 2 mais populares são screen
e tmux
.
Eu pessoalmente uso screen
e funciona extremamente bem para mim. Você inicia uma screen
sessão, inicia seu programa/script, desconecta (desconecta) e depois se reconecta à sessão desanexada para ver como as coisas correram.
Para instalar:
sudo apt-get install screen
Para iniciar uma sessão:
screen
Para desconectar (desconectar) da sessão:
Ctrl+ Aentãod
Para listar sessões em execução:
screen -ls
Para se reconectar a uma sessão desanexada, use a saída descreen -ls
screen -r [pid.tty.host]
Estes são apenas o básico para você começar, mas como sempre, man screen
tem muito mais informações