Fechando uma interface de linha de comando linux (remota)

1

Se eu executar código (por exemplo, um executável) em uma interface de linha de comando do Linux e, em seguida, fechar a interface, o que acontece? O executável continua rodando em segundo plano? E se requer entrada do usuário? Posso "retornar a ele" (por exemplo, para fornecer a entrada do usuário) durante uma sessão posterior?

Esse comportamento muda se a interface da linha de comando for acessada remotamente (por exemplo, via SSH)?

    
por lodhb 25.05.2013 / 16:00

2 respostas

4

A menos que você tenha executado o comando em um programa como screen ou tmux ; ou você tem backgrounded ( bg ) e renunciou ( disown ) disse programa, ele será morto quando seu shell pai morre (e fechar a janela de um emulador de terminal irá matar o shell)

    
por 25.05.2013 / 16:05
1

Variações desta questão foram feitas antes. Você pode encontrá-los se pesquisar em nohup , screen ou tmux .

Mas brevemente:
Quando você fecha a conexão da interface de rede fica offline, o programa que você está executando é informado de que você se desconectou (com um SIGHUP) e termina.

Se você quiser que eles continuem funcionando apesar disso, você precisa dizer a eles para ignorarem este sinal de desligamento, o que você pode fazer ao prefixar o comando nohup.

Um método muito mais confortável é executar screen ou tmux , o que manterá seu estado como estava até você se reconectar. (E que pode fazer muito mais).

    
por 25.05.2013 / 16:06