모눈종이에 사각사각
[AWS EC2] SpringBoot 백그라운드에서 실행 - nohup 본문
🍀 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]
참고사이트
'Web' 카테고리의 다른 글
[AWS] S3 버킷 삭제하기 (1) | 2022.05.17 |
---|---|
[AWS] RDS 삭제하기 (0) | 2022.05.17 |
[AWS EC2] 인스턴스 삭제하기 (0) | 2022.05.11 |