로그아웃 후 원격 CentOS 7 서버에서 서비스를 유지하는 방법은 무엇입니까?

로그아웃 후 원격 CentOS 7 서버에서 서비스를 유지하는 방법은 무엇입니까?

원격 CentOS 7 웹 서버에서 Spring Boot 애플리케이션을 실행하려고 합니다. 이 웹 서버는 첫날부터 Apache 및 독립형 Tomcat 인스턴스에서 애플리케이션을 성공적으로 제공하고 있습니다. 그러나 원격 서버에 연결하고 Spring Boot 애플리케이션(자체 내장형 Tomcat 인스턴스가 포함된 jar에 있음)을 시작하면 연결이 활성화되어 있는 동안 sshSpring Boot 웹 서비스가 성공적으로 실행되지만 세션이 종료된 후에는 종료됩니다 . jarsshsshjar세션이 종료된 후에도 포함된 Spring Boot 웹 서비스가 계속 실행되도록 하려면 어떤 구체적인 단계를 수행해야 합니까 ?ssh

SSH 세션을 사용하여 수백 마일 떨어진 devbox에서 애플리케이션을 시작할 때 입력하는 내용은 다음과 같습니다.

[ ~]$ 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

Apache는 서비스 요청을 내부적으로 전달하므로 세션을 종료할 때까지 port 9000서비스는 Apache URL을 통해 외부 세계에 노출됩니다 .somedomain.com/someurlpatternssh

답변1

백그라운드에서 프로세스를 실행하고 ssh세션을 닫습니다.

이를 수행하는 방법에는 여러 가지가 있습니다.

nohup1.명령

이 명령을 사용하면 쉘 프롬프트를 종료한 후 nohup명령을 실행할 수 있습니다.

예:

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

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

2.bash disown명령

disown또 다른 옵션은 다음 명령을 사용하는 것입니다 .

예:

  $ 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

screen3.명령

이 목적으로 이 명령을 사용할 수도 있습니다 screen.

관련 정보