No momento, estou executando um aplicativo Java por SSH para uma VM no Google Cloud Compute. Emito um comando para executar o aplicativo e ele carrega um console. Assim que eu encerro a conexão SSH, o aplicativo é encerrado. Presumo que isso ocorre porque o console foi fechado.
Gostaria que esse aplicativo (que é um servidor) persista após o término do SSH e, a qualquer momento, gostaria de me reconectar ao console e emitir comandos no servidor.
Respostas:
Você afirma isso:
Um pouco vagos nos gols, mas vou tentar!
Para executar qualquer comando como um processo em segundo plano em um servidor Linux, você deve anexar o comando com
nohup
e anexar&
ao final.Portanto, o comando final seria:
Os
nohup
meios pelos quais o comando deve ignorar "desligamentos" e o "e comercial"&
anexado a ele são um comando shell que instrui o sistema a executar o comando como processo em segundo plano. Mais informações sobre seu uso podem ser encontradas aqui .Quando você executa um comando como este, o processo será executado, você será enviado de volta ao prompt de comando e poderá sair da sessão do terminal ou até mesmo fazer outra coisa não relacionada a esse comando durante a sessão do terminal.
fonte
screen
pois ele permite que você volte à sessão após o lançamento. Honestamente, sua pergunta é muito vaga; portanto, se você puder esclarecer, isso pode ajudar a esclarecer as coisas.tail -f nohup.out
o mesmo trabalho. dir.Existem pelo menos três maneiras de fazer isso:
nohup
('não desligue'),screen
/tmux
, oudisown
. É um pouco incerto a sua pergunta sobre sua necessidade de conectar-se ao servidor e interagir com o daemon após a desconexão.Se for esse o caso,
nohup
edisown
não serão boas correspondências à medida que você libera o processo (embora ele continue em execução).tmux
(e tambémscreen
) manterá um termo válido mesmo quando você.Para mais informações, você pode ver as respectivas páginas:
Bash rejeitado (supondo que você esteja executando o Bash, embora muitos outros shell incluam algo semelhante)
fonte
disown
comando no Google Cloud, pelo menos a instância que estou usando, iniciada em 2019 ou final de 2018. Onohup
comando funciona bem, mas cria um arquivo extra que pode não ser desejado.Para desanexar um aplicativo de seu shell em execução, fazendo-o persistir após a saída do shell, use o
nohup
comandoVocê simplesmente prefixa seu comando normal
nohup
e ele deve funcionar.fonte
Além disso, se o nohub não estiver funcionando, você pode usar a tela :
do
fonte