Mantendo um processo em execução no servidor, mesmo o SSH está fechado [duplicado]

6

Estou executando um programa longo no servidor, que é basicamente o arquivo Jar do programa java. Eu quero manter este programa funcionando mesmo se o terminal SSH estiver fechado, como eu posso manter este programa rodando no servidor?

    
por user68537 25.05.2014 / 14:17

4 respostas

20

Duas maneiras diferentes:

  1. Use nohup - iniciando o programa com nohup /path/to/program & , nohup mantendo o programa em execução e qualquer saída será redirecionada para o arquivo nohup.out no diretório atual
  2. Use screen ou tmux se qualquer um deles estiver instalado no servidor. Eles são uma forma de manter um ou mais shells funcionando, para que você possa se reconectar a eles na próxima vez que fizer login - é um utilitário muito mais poderoso que o nohup. man screen ou man tmux para mais informações.
por 25.05.2014 / 14:26
2

Veja como manter um processo em execução que você já iniciou sem usar nohup.

Suponha que você começou a descompactar um grande arquivo e agora quer ir para casa.

$ tar -xzf bigfile.tar.gz

Pressione ctrl-z para enviar os processos para o segundo plano. Você pode digitar "jobs" e pressionar enter e ver o número do trabalho para o seu processo, provavelmente é 1.

Então faça:

$ disown %1
    
por 26.05.2014 / 04:08
1

Tanto a tela quanto o tmux funcionarão.

Veja, por exemplo, link para um tutorial rápido sobre como usá-lo.

    
por 25.05.2014 / 14:26
0

Embora eu nunca tenha usado o Apache Daemon , ele pode fazer o que quiser. Ele executará seu programa Java como um daemon, como um processo em segundo plano.

Eu então usaria htop para monitorar esse processo, e desligue-o se ele usar muitos recursos.

Você precisará instalar o htop apt-get:

sudo apt-get install htop

Em seguida, execute via

htop

Quando você vê o seu processo, você pode matá-lo selecionando-o na lista (através das teclas de seta) e depois matá-lo pressionando

f9, k 
    
por 26.05.2014 / 00:07