"&" 명령어
백그라운드로 실행하는 명령어.
터미널과 세션이 끊키면(로그아웃 등으로..) 프로세스도 자동 종료 된다.
ex) java -cp ./bin src.Main & |
"nohub" 명령어
터미널과 세션이 끊켜도 프로세스가 종료되지 않게 한다.
ex) nohub java -cp ./bin src.Main & |
주의사항
1. nohub은 실행시 nohub.out이라는 파일을 만들어 로그를 기록한다.
2. 쉘스크핍트 실행시 파일권한이 755여야 한다. (chmod 755 파일명)
3. 종료시 아래 2가지 방법으로 종료
ps -ef | grep 쉘스크립트파일명
kill -9 PID번호
스크립트 파일을 만들어 nohub 실행
아래와 같은 폴더구조에서 스크립트파일(.sh)를 만들고
server (디렉토리) Service.pid (text 파일) com.jar (java 라이브러리) start.sh stop.sh |
아래 명령어 입력하여 실행 하면 된다.
sudo sh ./start.sh sudo sh ./stop.sh |
아래는 스크립트 파일 세부 내용을 적어두었다.
Service.pid 파일
123456
start.sh 파일
echo service start....
export LANG;LANG=ko
JAVA_HOME=/usr/java1.7/bin
JAR_FILE=com.jar
MAIN_CLASS=com.service.Main (com.jar에 묶여있는 main메서드가 있는 클래스)
MAIN_PARAM=1111
nohub $JAVA_HOME/java -Xms256M -Xmx512M -Du=MainService -cp $JAR_FILE $MAIN_CLASS $MAIN_PARAM &
echo $!> Service.pid
stop.sh 파일
echo Service stop...
kill -9 'cat < Service.pid'
반응형