728x90
nohup java -jar filename.jar &

최근에 AWS EC2를 통해서 웹을 배포할려고 했는데 세션을 종료하면 서버가 끊기게 되는 것을 알고서 명령어를 찾아봤다.

 

docker-compose를 쓴다면 -d 옵션을 통해서 세션을 종료하더라도 계속해서 실행시킬 수 있다. 하지만 dokcer없이도 그냥 실행 시킬려명 어떻게 해야할까?

 

그럴 때에는 nohup명령어를 사용해주면 된다.

 

이렇게 해주면 된다. 

예를 들어서 

 

장고를 실행시킬려면 아래와 같이

nohup python3 manage.py runserver 0:8000 &

스프링부트를 실행시킬려면 아래와 같이 명령어를 입력해주면 된다.

nohup [실행하고자 하는 파일] &

 

그렇다면 로그는 어디서 볼 수 있는 것일까??

 

위와 같이 명령어를 쳤으면 입력한 곳에 nohup.out이라는 파일이 생긴것을 확인 할 수 있다.

여기에 로그가 작성된다.

만약에 파일명을 변경하고 싶다면 

nohup [실행 파일] > [로그 기록할 파일 이름] &

이런식으로 명령어를 입력해준다. 

만약 에러메시지와 출력, 입력을 다른 곳에 보고 싶다면 

nohup [실행 파일] 0>input.out 1>output.out 2>error.out &

이렇게 작성해주면 된다.

0은 표준입력, 1은 표준출력, 2는 에러내용이다.

 

이제 종료는 어떤식으로 해야할까?

ps -ef | grep [종료할 프로세스]

이런식으로 PID를 먼저 찾아준뒤에 

# 종료
kill -15 [PID]
# 강제 종료(권장 X)
kill -9 [PID]

이렇게하면 프로세스를 종료할 수 있다.

728x90

+ Recent posts