nohup 명령어 사용 방법 정리 :: 행복한 프로그래머

posted by 쁘로그램어 2018. 11. 20. 02:32

리눅스에서 사용되는 nohup 명령어는 두 가지 기능이 있습니다.


1. 표준 출력을 nohup.out (또는 다른 곳) 으로 돌리는 작업을 수행

2. 프로세스가 중단되지 않는 백그라운드 작업을 수행


# nohup 사용하기

$ nohup [실행파일]

$ nohup [실행파일] &     // 백그라운드 실행


# 로그 안남도록 하는 nohup

nohup으로 프로그램을 실행하면 nohup.log라는 로그가 남게 된다.

로그파일을 안 남게 하려면 다음과 같이 하면 된다

 

$ nohup [실행파일] 1>/dev/null 2>&1 &

1>/dev/null  이 표현은 1의 결과를 /dev/null 이라는 파일 속에 넣는다. /dev/null로 보내버리면 모든 출력을 없애버린다.

2>&1 이 표현은 2번 파일디스크립터를 1번에 지정된 형식과 동일하게 /dev/null로 지정한다.

 

& 은 프로그램을 백그라운드에서 실행하도록 하는 표현이다.


" 명령어 & "

여기서 '&'는 백그라운드로 실행하라는 뜻입니다.

그런데, 이 방법은 실행한 사용자가 로그아웃하면 프로그램도 함께 종료됩니다.

이럴때는 nohup 이란 명령어를 사용하면 됩니다.


# nohup(노헙) 정의

- 리눅스, 유닉스에서 쉘스크립트파일(*.sh)을 데몬형태로 실행시키는 프로그램


# nohup 주의사항

- nohup으로 실행할 쉘스크립트파일(*.sh)은 현재 퍼미션이 755이상 상태여야 한다.

- chmod 755 shell.sh


# nohup 실행방법

- nohup shell.sh &

- nohup sh -- ./shell.sh &


# nohup 종료방법

1. "ps -ef | grep 쉘스크립트파일명" 명령으로 데몬형식으로 실행

2. "kill -9 PID번호" 명령으로 해당 프로세스 종료


# nohup 로그파일

nohup으로 쉘파일을 실행하면 자동으로 "nohup.out" 파일이 생성되며 이 파일에는 리다이렉션을 사용하지 않은 출력문자열이 자동으로 저장된다.


# nohup 프로그램으로 자바 프로세스 실행방법

shell> nohup java ReoDeliveryInfo &

설명 : nohup으로 자바 프로세스를 백그라운드에서 실행