Como executar o aplicativo do terminal para sempre? [duplicado] O

3

Eu inicio o servidor web jenkins usando o comando java -jar jenkins.war . Isso funciona muito bem. Quando fecho o terminal, o aplicativo pára.

Como fazê-lo funcionar mesmo se eu fechar a sessão de terminal?

    
por UAdapter 12.12.2013 / 17:22

5 respostas

4

O método mais simples e direto é nohup java -jar jenkins.war & . "nohup" significa "no hangup", que é terminologia vintage para não terminar uma sessão quando o terminal é desconectado. "& amp;" apenas inicia o processo em segundo plano, semelhante ao que aconteceria se você pressionar CTRL + Z (e depois digitar bg 1 ) enquanto o processo estiver sendo executado em primeiro plano.

AVISO: nohup, por padrão, envia a saída do processo para um arquivo de texto. Se você não for cuidadoso, esse arquivo pode se tornar perigosamente grande em alguns casos. Trate como qualquer outro arquivo de log crescente.

    
por Sparr 12.12.2013 / 17:25
3

Instale a tela . No terminal, digite screen e, em seguida, execute seu aplicativo. Pressione CTRL+A,CTRL+D para deatá-lo na tela e digite a tela do terminal -r para reativar. Você pode acessar sua tela através de ssh etc ...

apt-get install screen
    
por OHLÁLÁ 12.12.2013 / 17:40
2

Use nohup

Não desligue. Execute um comando imune a interrupções, execute o comando fornecido com sinais de desconexão ignorados, para que o comando possa continuar sendo executado em segundo plano após o logout. ManPage

nohup Command &

No seu caso, seria

nohup java -jar jenkins.war &
    
por Mitch 12.12.2013 / 17:26
1

Se você está iniciando com frequência um serviço como o Jenkins que deseja executar em segundo plano e não fechar quando termina sua sessão, deve considerar a implementação de um script de inicialização para ele. Veja os scripts em /etc/init.d/ para exemplos. Estes são scripts de shell curtos que permitem que você faça coisas como service httpd start e service httpd stop e mesmo service httpd status para descobrir se o httpd está em execução, ou se ele deveria estar em execução, mas não está.

Existe um ótimo exemplo de script para o serviço Hudson, que funciona de forma muito similar a Jenkins (eles são garanhões irmãos da mesma base de código) aqui: link

    
por Sparr 12.12.2013 / 17:29
0

acrescente & após o seu comando, quero dizer

java -jar jenkins.war &
    
por Ten-Coin 12.12.2013 / 17:26