nohup : 로그아웃 하여 터미널을 빠져나가도 실행중인 프로그램이 종료되지 않고 계속 수행될수 있게 하는 명령


프로그램을 데몬처럼 실행하고 싶을 때는 아래와 같이 하면 됩니다. 


" 명령어 & "

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

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

이럴때는 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" 파일이 생성되며 이 파일에는 리다이


렉션을 사용하지 않은 출력문자열이 자동으로 저장된다.


 


예제소스


cnt=0


while true;

do  

 

 Time=`date +"%T"` # 24시간 기준 현재시간

 echo $Time >> test.txt


 


 TimeHour=`date +"%H"`


 if [[ $TimeHour -eq 07 && $TimeHour -eq 07 ]] # 오전 7시에 실행

 then

  cnt=1

  cnt=cnt+1

  break

 fi

 

 echo "* * * * * Start Main Job " `date`

 

 #


 echo "* * * * * End Main Job " `date` # + 로 문자열 연결하면 안됨. 그대로 출력됨

 

 sleep 10


done




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


shell> nohup java ReoDeliveryInfo &


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


-------------------------------------------------------------


출처 : http://www.zetswing.com/bbs/board.php?bo_table=OS_LINUX&wr_id=27