이전 블로그에서 java -jar *.jar
명령어를 통해 프로젝트를 실행해보았습니다.
하지만 실행을 종료하거나 리눅스를 종료하면 서버도 종료가 되는단점이 있었습니다.
이제 nohup
을 사용해 리눅스를 종료해도 서버가 돌아가게 하겠습니다.
리눅스에서 프로세스를 실행한 터미널의 세션 연결이 끊어지더라도 지속적으로 동작 할 수 있게 해주는 명령어 입니다.
nohup을 설치합니다.
sudo apt install nohup
설치가 되었으니 실행해 보겠습니다.
nohup java -jar *.jar
하지만 이상태에서 리눅스를 종료하면 서버가 유지되지 않습니다.
그 이유는 포그라운드
로 실행했기 때문입니다.
입력한 명령어 실행이 결과가 나올 때 까지 기다리는 방식이 바로 포그라운드 방식 입니다. 포그라운드 프로세스라고 말하며 작업 제어 측면에서는 포그라운드 작업이라고 말합니다.
백그라운드 기능은 프로세스가 실행되는 동안 다른 프로세스가 실행 가능합니다. 하나의 쉘에서 여러 개의 프로세스를 동시에 실행할 수 있는 방식입니다.
뒤에 &를 붙여주면 백그라운드 실행이 됩니다.
nohup java -jar *.jar &
하지만 이렇게 하면 log를 확인 할 수 없습니다...
라고 말할뻔 했지만! nohup
은 자동으로 로그를 남깁니다!
nohup.out 파일에 로그가 자동으로 남겨집니다.
cat nohup.out
로그가 확인됩니다!
tail -f 명령어를 통해 실시간으로 확인할 수 있습니다.
tail -f nohup.out
nohup java -jar *.jar > mylog.out &