모눈종이에 사각사각

[AWS EC2] SpringBoot 백그라운드에서 실행 - nohup 본문

Web

[AWS EC2] SpringBoot 백그라운드에서 실행 - nohup

모눈종이씨 2022. 4. 4. 23:29

🍀 SpringBoot 백그라운드에서 실행 - nohup

 

항상 컴퓨터를 켜두고 서버를 실행시킨다면 상관없지만, 터미널을 끄고 켤 때마다 다시 빌드를 하고 서버를 실행시키는 것은 꽤나 불편한 일이다.

 

nohup 명령어를 사용한다면, 프로그램을 백그라운드에서 실행시킬 수 있다.

 

먼저 빌드클린을 한 후 빌드를 한다.

./gradlew clean build

 

만약 여기서 권한 오류가 난다면 상위 디렉토리로 이동해서 권한을 부여한다. 그리고 다시 원래 디렉토리로 이동한다.

cd ..
chmod -R 777 [디렉토리 이름]
cd [디렉토리 이름]

 

지금까지는 다음과 같은 명령어를 통해 포어 그라운드에서 실행시켰다.

java -jar build/libs/[프로젝트 이름]-0.0.1-SNAPSHOT.jar

🥦 백그라운드에서 실행시키기

이 명령어 앞에 nohup을 붙이고 끝에는 &를 붙여보도록 하자. 그러면 백그라운드에서 실행되게 된다.

nohup java -jar build/libs/[프로젝트 이름]-0.0.1-SNAPSHOT.jar &

* nohup : 터미널을 꺼도 애플리케이션이 꺼지지 않도록 하는 명령어
* & : 애플리케이션이 백그라운드에서 돌아갈 수 있도록 하는 명령어

 

 

위의 명령어를 치면 "nohup: ignoring input and appending output to 'nohup.out'" 이라고 나오는데 이러면 성공이다! (나는 처음에 에러 메시지인 줄 알고 계속 구글링을 했었다.. 알고보니 잘 되었던 것이었을 뿐 에러가 아니었다!)

 

이제 Ctrl+C를 눌러서 나와도 된다.

🥦 로그보기

로그를 보고 싶은 경우 다음과 같이 입력하면 된다.

tail -f nohup.out

nohup.out은 nohup으로 실행한 애플리케이션의 로그를 볼 수 있는 파일이다.

여기서 Ctrl+C를 눌러서 나오면 로그 보기만 종료된다.

 

🥦 백그라운드 실행 종료하기

백그라운드 실행을 종료할 때는 백그라운드에서 실행중인 프로세스의 ID를 파악해서 종료시켜야 한다.

 

다음과 같은 명령어를 입력하면 입력한 포트의 프로세스 ID를 확인할 수 있다.

나의 경우에는 9009번 포트를 열어두었다.

sudo lsof -t -i:9009

 

그러면 숫자가 나올 것이다. 그것이 프로세스 ID 이다.

 

프로세스를 종료 시키기 위해서는 다음과 같이 입력한다.

kill -9 [프로세스 id]

 


참고사이트

https://gksdudrb922.tistory.com/155

'Web' 카테고리의 다른 글

[AWS] S3 버킷 삭제하기  (1) 2022.05.17
[AWS] RDS 삭제하기  (0) 2022.05.17
[AWS EC2] 인스턴스 삭제하기  (0) 2022.05.11
Comments