nohup으로 백그라운드 실행하기

Sol's·2023년 5월 15일
0

Aws 무중단 배포

목록 보기
8/28

이전 블로그에서 java -jar *.jar 명령어를 통해 프로젝트를 실행해보았습니다.
하지만 실행을 종료하거나 리눅스를 종료하면 서버도 종료가 되는단점이 있었습니다.

이제 nohup을 사용해 리눅스를 종료해도 서버가 돌아가게 하겠습니다.

nohub이란?

리눅스에서 프로세스를 실행한 터미널의 세션 연결이 끊어지더라도 지속적으로 동작 할 수 있게 해주는 명령어 입니다.

nohup을 설치합니다.

sudo apt install nohup


설치가 되었으니 실행해 보겠습니다.

nohup java -jar *.jar

하지만 이상태에서 리눅스를 종료하면 서버가 유지되지 않습니다.
그 이유는 포그라운드로 실행했기 때문입니다.

포그라운드

입력한 명령어 실행이 결과가 나올 때 까지 기다리는 방식이 바로 포그라운드 방식 입니다. 포그라운드 프로세스라고 말하며 작업 제어 측면에서는 포그라운드 작업이라고 말합니다.

백그라운드

백그라운드 기능은 프로세스가 실행되는 동안 다른 프로세스가 실행 가능합니다. 하나의 쉘에서 여러 개의 프로세스를 동시에 실행할 수 있는 방식입니다.

뒤에 &를 붙여주면 백그라운드 실행이 됩니다.

nohup java -jar *.jar &

하지만 이렇게 하면 log를 확인 할 수 없습니다...
라고 말할뻔 했지만! nohup은 자동으로 로그를 남깁니다!

nohup 로그 확인하기

nohup.out 파일에 로그가 자동으로 남겨집니다.

cat nohup.out

로그가 확인됩니다!

실시간 로그 추적하기

tail -f 명령어를 통해 실시간으로 확인할 수 있습니다.

tail -f nohup.out

mylog.out에 로그 저장하기

 nohup java -jar *.jar > mylog.out &
profile
배우고, 생각하고, 행동해라

0개의 댓글