Como faço para manter um serviço em um servidor remoto do CentOS 7 para persistir após o logout?

1

Estou experimentando a execução de aplicativos Spring Boot em um servidor web CentOS 7 remoto que serve com sucesso aplicativos no Apache e uma instância do tomcat independente desde o primeiro dia. No entanto, quando eu ssh para o servidor remoto e inicio um aplicativo Spring Boot (que está em um jar que contém sua própria instância tomcat incorporada), o serviço da web Spring Boot jar é executado com êxito enquanto minha conexão ssh está ativa , mas termina depois que minha sessão ssh terminar. Quais etapas específicas devo executar para que o jar que contém o serviço da Web Spring Boot continue em execução depois que minha ssh sessão for encerrada?

Aqui está o que eu digitei para iniciar o aplicativo usando uma sessão ssh do meu devbox a muitas centenas de quilômetros de distância:

[ ~]$ cd /path/to/webservice
[ webservice]$ kill $(lsof -t -i:9000)
kill: usage: kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]
[ webservice]$ java -jar mywebservice.jar

Como o apache encaminha solicitações para o serviço internamente para port 9000 , o serviço é exposto ao mundo externo por meio de um URL do apache somedomain.com/someurlpattern até eu terminar a sessão ssh .

    
por CodeMed 30.12.2015 / 20:15

1 resposta

2

Execução de um processo em segundo plano e fechamento de ssh session

Existem várias maneiras de fazer isso:

1.O comando nohup

Você pode usar o comando nohup para executar comandos depois de sair de um prompt do shell.

Exemplo:

  $ nohup java -jar mywebservice.jar > /path/to/webservice/logs/mylogfile.txt &

  ## exit from shell or close the terminal ##
  $ exit

2.O comando disown bash

Outra opção é usar o comando disown da seguinte forma:

Exemplo:

  $ java -jar mywebservice.jar > /path/to/webservice/logs/mylogfile.txt &
  [1] 10685
  $ disown 10685
 $ ps
    PID TTY          TIME CMD
    10685 pts/0    00:00:00 wget
    10687 pts/0    00:00:00 bash
    10708 pts/0    00:00:00 ps
 $ logout

3.O comando screen

Você também pode usar o comando screen para essa finalidade.

    
por 30.12.2015 / 20:45