336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

우분투(리눅스) 환경에서 JAVA 프로그램을 데몬처름 실행하고 싶을 때 아래와 같은 명령어로 실행하면 가능합니다. 

$ Java -jar {runnable.jar} &


위에서 '&' 문자는 백그라운드로 실행하도록하는 옵션값입니다.


그러나,  실행한 사용자가 로그아웃을 할 경우 사용자가 실행한 프로그램도 같이 종료되게 됩니다.

사용자가 로그아웃에도 영향을 받지 않고 시스템에서 백그라운드로 실행하도록 하는 명령어가 nohup 입니다.


nohup is a POSIX command to ignore the HUP (hangup) signal. The HUP signal is, by convention, the way a terminal warns dependent processes of logout.

[출처] http://en.wikipedia.org/wiki/Nohup


  1. nohup 으로 실행하기
    $ nohup java -jar {runnable.jar} &  # 또는 nohup {쉘스크립트파일} &

  2. nohup 으로 실행한 프로세스 종료하기
    데몬으로 동작 중인 pid를 찾아서 kill 명령어로 해당 프로세스를 종료해야 합니다. 

    $ ps -ef | grep 'java -jar {runnable.jar} # 또는 ps -ef | grep {쉘스크립트파일} 

    # 위에서 확인한 PID를 이용하여 프로세스 종료
    $ kill -9 {PID}

  3. nohup.out 파일?
    nohup 으로 실행하면 실행 위치에 nohup.out 파일이 생성된다. 이 파일은 nohup 으로 실행한 프로세스에서 리다이렉션을 사용하지 않은 출력문자열이 자동으로 저장됩니다. 

  4. nohup.out 파일 생성 안하기
    nohup.out 파일은 분할되지 않으므로 장시간 프로세스가 실행될 경우 파일이 커질 수 있습니다. 이것을 방지하기 위하여 nohup.out 파일을 생성하지 않는 방법이 있습니다.
    $ nohup 'java -jar {runnable.jar}' 1 > /dev/null 2 > &1

    여기서 1은 표준 출력, 2는 표준 에러를 말하고 있습니다.  즉, 해당 프로세스의 표준 출력(1)을 /dev/null 로 표준 에러(2)는 표준 출력(1) 으로 리다이렉션 해주므로써 파일은 생성되지 않습니다.

  5. nohup.out 파일 이름 변경