서비스로 등록을 하려고 /etc/init.d 아래에 아래와 같은 소스로 파일을 만들었습니다.
start할 시에 자바 프로그램을 실행하도록 되어 있는데요.
이상하게도 service servicename start를 했을때는 java가 실행이 되질 않는데..
동일한 경로에서 ./servicename start를 할 경우 java가 정상적으로 올라옵니다......
이것때문에 몇일째 막히고 있는데요. 이런 해괴한 현상은 처음 봅니다.... ㅠㅠ... 대체 이유가 뭘까요?
#!/bin/sh
SERVICE_NAME=pda_8080
PATH_TO_JAR=/home/kdexp/pda_8080.jar
PID_PATH_NAME=/tmp/pda_8080
JAVA_OPTS="-server -Dserver.port=8080 -Dspring.profiles.active=prod -Xms2G -Xmx6G -XX:MaxMetaspaceSize=128M -XX:NewSize=512M -XX:MaxNewSize=512M -XX:+UseG1GC -XX:+DisableExplicitGC -Dfile.encoding=UTF-8 -Djna.nosys=true -Duser.timezone="Asia/Seoul" -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:/home/kdexp/logs/gc.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M -XX:+HeapDumpOnOutOfMemoryError -Djava.rmi.server.hostname=14.63.160.216 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.port=15410"
case $1 in
start)
echo "Starting $SERVICE_NAME ..."
if [ ! -f $PID_PATH_NAME ]; then
nohup java $JAVA_OPTS -jar $PATH_TO_JAR /tmp 2>> /dev/null >> /dev/null &
echo $! > $PID_PATH_NAME
echo "java $JAVA_OPTS -jar $PATH_TO_JAR"
echo "$SERVICE_NAME started ..."
else
echo "$SERVICE_NAME is already running ..."
fi
;;
stop)
if [ -f $PID_PATH_NAME ]; then
PID=$(cat $PID_PATH_NAME);
echo "$SERVICE_NAME stoping ..."
kill $PID;
echo "$SERVICE_NAME stopped ..."
rm $PID_PATH_NAME
else
echo "$SERVICE_NAME is not running ..."
fi
;;
restart)
if [ -f $PID_PATH_NAME ]; then
PID=$(cat $PID_PATH_NAME);
echo "$SERVICE_NAME stopping ...";
kill $PID;
echo "$SERVICE_NAME stopped ...";
rm $PID_PATH_NAME
echo "$SERVICE_NAME starting ..."
nohup java $JAVA_OPTS -jar $PATH_TO_JAR /tmp 2>> /dev/null >> /dev/null &
echo $! > $PID_PATH_NAME
echo "$SERVICE_NAME started ..."
else
echo "$SERVICE_NAME is not running ..."
fi
;;
esac
6À̸é
chmod a+x /etc/init.d/servicename
chcon -t initrc_exec_t servicename
chkconfig --add servicename
chkconfig --level 3 4 5 servicename on
¼øÀ¸·Î ÇØÁÖ¼¼¿ä.
±ÇÇÑÀº ±âº»ÀÌ°í ¼ºñ½º µî·Ï±îÁö^^
"PATH_TO_JAR=/home/kdexp/pda_8080.jar" Çϼ̴ø °Íó·³ "JAVA_PATH" Á¤µµ ¸¸µé¾î¼ ³Ö¾îÁÖ½Ã¸é µË°Ì´Ï´Ù.