1. JAVA 프로그램을 데몬(deamon) 처럼 실행하고자 할 때 아래와 같이 실행 (뒤에 & 를 붙임)
$ java -jar {runnable.jar} &
위의 경우 실행한 유저가 로그아웃하면 프로그램도 같이 종료됨.
2. 사용자 로그아웃에 영향받지 않고 시스템에서 백그라운드로 실행하도록 하려면 nohup 명령을 사용하면 된다.
$ nohup java -jar {runnable.jar} &
또는
$ nohup {shellscript 파일} &
3. nohup 으로 실행한 파일 종료는 kill 을 사용
$ ps -ef | grep {runnable.jar}
를 활용하여 PID 를 찾은 후
$ kill -9 {PID}
4. nohup 을 사용하면 실행위치에 nohup.out 파일이 생성됨. 일종의 로그 파일.
장시간 프로세스가 실행되면 파일의 용량이 커질수 있으므로 nohup.out 파일을 생성하지 않으려면
$ nohup java -jar {runnable.jar} 1 > /dev/null 2> &1 &
<참고> 1 은 표준출력, 2는 표준에러
위 실행명령은 runnable.jar 를 백그라운드 데몬으로 실행하고,
표준출력은 /dev/null 로 보내고, 표준오류는 표준출력으로 보냄으로써 파일은 생성되지 않는다.
5. 데몬으로 구동/중지하는 예
$ vi run.sh
#프로그램을 데몬으로 실행
nohup java -Du={서비스이름} -jar {runnable.jar} 1>/dev/null 2>&1 &
#프로그램의 PID 저장
echo $!> {서비스이름}.pid
echo "Service Started !!!"
$vi stop.sh
echo "WServer Service Stopping...."
#실행시 저장한 PID 로 프로세스 KILL
kill -9 `cat < {서비스이름}.pid`
#PID 저장 파일 삭제
rm -rf wserver.pid
echo "Service Stopped!!"
'프로그래밍 > JAVA' 카테고리의 다른 글
[JAVA] XML 타입 프로퍼티 파일 처리 (0) | 2023.02.28 |
---|---|
[JAVA] HTTP GET/POST request (0) | 2023.02.27 |
[JAVA] AES256 암호화 할 때 키 길이 오류 발생하는 경우 (0) | 2023.02.27 |
[JAVA] 날짜/시간 계산 예제 코드 (0) | 2023.02.27 |
[JAVA] eclipse indigo 와 JBOSS 5.0.1 GA 연동 (0) | 2023.02.27 |
댓글