Iniciando o shell script do SSH e desconectando

1

Eu tenho um script que eu executo a partir do SSH que lança vários processos que eu gostaria de manter abertos quando eu me desconectar da minha sessão.

Isso é viável? Lançar o script em segundo plano não é uma solução ...

UPDATE

Meu script inicia um processo Java com um caminho de classe diferente e chama outros 4 scripts, cada um deles iniciando diferentes processos java com diferentes caminhos de classe.

    
por Edmondo1984 29.07.2013 / 11:23

3 respostas

5

Se os processos são um pouco interativos / não adequados para serem executados como daemons, você está procurando algo como GNU Screen ou tmux - ambos permitem iniciar uma sessão com várias janelas e desanexar e reconectar essa sessão:

tmux new-session session-1
# start an application
C-b d # C-b means Ctrl-b
# You're now back in your terminal and can disconnect from the server
# After connecting again, use
tmux attach -t session-1
# to get back to your previously created session.

O fluxo de trabalho para a tela é semelhante, mas eu não sei disso.

    
por 29.07.2013 / 11:38
3

Depende do que significa "manter aberto". Se você quiser reconectar algum tempo depois e ver a saída e interagir, a Wieland já lhe deu um bom conselho. Se você quer que eles continuem funcionando quando você sair, você pode tentar usar nohup : pode ser um primeiro plano ou plano de fundo, e ele fará o truque.

    
por 29.07.2013 / 12:07
1

Para completar a resposta do @ Wieland, você usaria o GNU Screen desta maneira:

screen -S session-name
# start your application here
C-a d # C-a means Ctrl and "a" key. 'd' stands for 'detach'
# You're now back in your terminal and can disconnect from the server

# After connecting again, use
screen -r session-name
# to get back to your previously created session.
    
por 29.07.2013 / 15:09