Manter um aplicativo Java em execução quando o SSH é fechado no Google Cloud

7

Neste momento, estou executando um aplicativo Java por SSH em uma VM no Google Cloud Compute. Eu emito um comando para executar o aplicativo e ele carrega um console. Assim que termino a conexão SSH, o aplicativo é encerrado. Presumo que seja porque o console foi fechado.

Eu gostaria que esse aplicativo (que é um servidor) persistisse após eu terminar o SSH e, a qualquer momento, gostaria de poder reconectar-me ao console e emitir comandos no servidor.

    
por Noahb32 06.08.2016 / 18:35

3 respostas

7

Você afirma isso:

I would like this app (which is a server) to persist after I terminate SSH, and, at any point, I would like to be able to reconnect to the console and issue commands on the server.

Um pouco vago nos gols, mas vou dar uma facada nisso!

Para executar qualquer comando como um processo em segundo plano em um servidor Linux, você deve prefixar o comando com nohup e anexe & ao final.

Então o comando final seria:

nohup [your command] &

O nohup significa que o comando deve ignorar os "desligamentos" e o "e" comercial & anexado a ele é um comando shell que instrui o sistema a executar o comando como um processo em segundo plano. Mais informações sobre seu uso pode ser encontrado aqui .

Quando você executar um comando como este, o processo será executado, você será enviado de volta ao prompt de comando e poderá sair da sessão de terminal ou até mesmo fazer outra coisa não relacionada a esse comando durante essa sessão de terminal.

    
por 06.08.2016 / 19:41
1

Para desanexar um aplicativo de seu shell em execução, fazendo com que ele persista após o shell sair, use o comando nohup .

Você simplesmente prefixar seu comando normal com nohup e ele deve funcionar.

    
por 06.08.2016 / 18:37
1

Existem pelo menos três maneiras de fazer isso: nohup ('não desliga'), screen / tmux ou disown . É um pouco incerto da sua pergunta quanto à sua necessidade de se conectar ao servidor e interagir com o daemon depois que você se desconectar.

Se esse for o caso, nohup e disown não serão boas correspondências quando você liberar o processo (embora continue sendo executado). tmux (e também screen ) manterá um termo em execução mesmo quando você.

Para mais informações, você pode ver as respectivas páginas:

man nohup
man tux

Bash disown (supondo que você esteja executando o Bash, embora muitos outro shell inclui algo similar)

    
por 06.08.2016 / 19:28

Tags