본문 바로가기
CS/AWS

[EC2] SSH 접속 종료 후에도 서버를 유지 시키는 법

by Hyeri.dev 2024. 5. 9.

사내 홈페이지에 대한서비스를 구축 후 EC2 환경에서 배포하기 위해 build 파일을 SSH 서버에서 실행시켰다.

java -jar <jar 파일명>

위 명령어를 통해 build 파일을 실행시키고 아래와 같이 정상적으로 실행되었음을 확인하고 서버를 종료하였다.

 

엥?

 

업무를 마무리 짓고 해당 내용을 전달하였는데 서버가 동작하고 있지 않다는 말을 전달받아 확인해보니 SSH 접속을 종료함과 동시에 서버도 Shutdown된다는 것을 알게되었다.

하지만 서비스가 종료되기 전까지 SSH 접속을 유지할 수는 없으니 접속이 끊기더라도 서버 실행은 유지할 수 있는 방법을 찾아야 했다.

nohup 명령어

nohupno hang up의 약자로 프로세스를 실행한 터미널의 세션 연결이 끊기더라도 지금 실행시킨 프로그램을 종료하지 않도록 하는 Linux 명령어이다.

 

기본적으로 터미널에서 세션 로그아웃이 발생하면 해당 터미널에서 실행한 프로세스들에게 HUP Signal을 전달하여 종료시키게 되는데 이 시그널을 프로세스가 무시하도록 한다.

 

사용법

nohup java -jar <jar 파일명> &

 

사용 방법은 프로그램 실행 명령어 앞에 nohup만 붙여주면 되며, 실행하였을 때 실행한 경로에 nohup.out이라는 log 파일이 생성된다.

 

또한, 명령어 뒤에 & 문자를 붙여 프로세스를 백그라운드에서 동작하도록 한다.