코딩마을방범대

nohup 이란 본문

💡 백엔드/우분투

nohup 이란

신짱구 5세 2023. 6. 7. 17:11
728x90

nohup ( no hang up | 끊지마 )

프로그램을 백그라운드에서 세션과의 연결이 끊어져도 돌려야할 경우 사용

 

 

 

 

사용 방법

명령어 앞에 nohup 을 붙이기

$ nohup java -jar test.war &
nohup으로 실행시킬 파일은 반드시 755 퍼미션을 가지고 있어야 함
관리자 권한에 대한 포스트

실행 시 "nohup: appending output to 'nohup.out'" 메시지와 함께 해당 프로그램의 로그가

nohup을 실행시킨 경로에 nohup.out으로 출력됨

 

 

 

 

로그를 별도 파일명으로 생성시키고 싶은 경우

> 또는 >> 통해 출력시키고 싶은 파일명을 입력하면 됨

0: 표준 입력
1: 표준 출력
2: 표준 에러

숫자 후에 띄어쓰기가 있을 경우 제대로 실행되지 않음
ex) ... 2 > nohup_err.log
$ nohup ./start.sh > nohup_start.out

// 표준 출력,입력은 start, 에러는 err로 출력
$ nohup java -jar test.war > nohup_start.log 2> nohup_err.log
 
// nohup_result 라는 log에 표준 에러와 표준 출력 적용
$ nohup ./start.sh > nohup_result.log 2>&1

 

out 파일을 생성시키고 싶지 않은 경우

/dev/null 을 입력

$ nohup ./start.sh > /dev/null

 

 

 

 

 

&를 이용한 백그라운드 실행

실행할 명령어의 맨 끝에 & 붙이기

$ nohup ./start.sh &

아래 명령어를 통해 백그라운드로 실행 중인 것을 확인 할 수 있음

$ ps -ef | grep start.sh

 

 

 

 

 

프로세스 종료 방법

프로세스 pid 번호 알아내기

$ ps -ef | grep start.sh

pid 번호를 통해 종료

$ kill [pid번호]

 

 

 


 

참고사이트

쉽게 설명한 nohup 과 &(백그라운드) 명령어 사용법

728x90