1. nohup java -Djava.awt.headless=true -mx2048m -cp .:/home/ab/GIS/mapservice/server/gms-5a-19.2.25.jar:/home/ab/GIS/mapservice/server/lib/log4j-1.2.16.jar:/home/ab/GIS/mapservice/server/lib/netty-all-4.1.31.Final.jar:/home/ab/GIS/mapservice/server/lib/commons-pool-1.6.jar:/home/ansim/GIS/mapservice/server/lib/mariadb-java-client-1.7.1.jar:/home/ab/GIS/mapservice/server/lib/mybatis-3.4.5.jar abc.MapService &
이러한 형식으로 여러 jar 파일을 실행하는 데몬이 있습니다.
그냥 sh 나 ./로 실행하면 실행이 가능한데 rc.local에 등록하여도 하드웨어 재시작시 이 데몬만 올라오지 않습니다. 권한은 777로 주어봐도 같습니다.
2. 또한 이러한 형식으로 모니터링 프로그램용 스크립트를 만들어서 ./xx.sh start 할경우 PID는 echo 되는데 실행은 되지 않습니다.
#!/bin/bash
export JAVA_HOME=/usr/local/java/jdk1.8.0_161
export PATH="$PATH:$JAVA_HOME/bin"
export CATALINA_HOME=/home/ab/GIS/mapservice/server
export PATH="$PATH:$CATALINA_HOME"
export nowDate=`date +%Y-%m-%d%t%H:%M:%S`
pName="MapService"
pCount=$(ps -ef | grep $pName | grep -v grep | grep -v $pName.sh | wc -l)
PID=$(ps -ef | grep $pName | grep -v grep | grep -v $pName.sh | awk '{print $2}')
PID_FILE='/home/ab/GIS/mapservice/server/pid/MapService.pid'
PATH_TO_JAR='/home/ab/GIS/mapservice/server/gms-5a-18.5.16.jar:/home/ab/GIS/mapservice/server/lib/log4j-1.2.16.jar:/home/ab/GIS/mapservice/server/lib/netty-3.9.0.Final.jar:/home/ab/GIS/mapservice/server/lib/commons-pool-1.6.jar:/home/ab/GIS/mapservice/server/lib/mariadb-java-client-1.7.1.jar:/home/ab/GIS/mapservice/server/lib/mybatis-3.4.5.jar abc.MapService &'
JAVA_OPT="-mx2048m"
if [ "$1" = start ]
then
echo "start"
touch $PID_FILE
echo "Starting ansim with PID $PID"
echo $PID > $PID_FILE
if [ "$pCount" -eq 0 ]
then
echo "$nowDate"
echo "start MapService"
sh $CATALINA_HOME/startservice.sh > /dev/null 2>&1
rm -f $CATALINA_HOME/pid/$pName.pid
ps -ef | grep $pName | grep -v grep | grep -v $pNamae.sh | awk '{print $2}' >> $CATALINA_HOME/pid/$pName.pid
fi
elif [ "$1" = stop ]
then
echo "stop"
kill -9 `ps -ef | grep $pName | grep -v grep | grep -v $pName.sh | awk '{print $2}'`
else
echo 'must input a valid parameter.'
echo 'Usage: NT_callProcessd.sh {start|stop}'
재부팅 시 , 혹은 셸로 작성하였을 때만 실행이 안되는 이유가 무었인지 너무나 궁금합니다.
짐작가는 의견 있으시면 부탁드려보겠습니다..
감사합니다.
µð¹ö±ëÀ» À§ÇØ ½© »ó´ÜÀº "#!/bin/bash" -> "#!/bin/bash -x" ·Î º¯°æÇϽñ¸¿ä.
½©ÀÇ ´ëºÎºÐÀº Æнº°¡ ¹®Á¦°¡ µÇ¾î ½ÇÇàµÇÁö ¾Ê½À´Ï´Ù.
¿¹) test.sh
sh test.sh > /tmp/test.out 2>&1
-cp .:
ÀÌ·¸°Ô µÇ¾î Àִµ¥ ÇöÀç µð·ºÅ丮¿¡ º°µµÀÇ Å¬·¡½º ÆÄÀÏÀÌ Ãß°¡·Î Á¸ÀçÇϳª¿ä?
Á¸ÀçÇÏ°í ±× µð·ºÅ丮°¡ ÇöÀç »ç¿ëÀÚ µð·ºÅ丮¶ó °¡Á¤Çϸé
cd /home/myuser
nohup java -Djava.awt . . .
ÀÌ·¸°Ô Çϰųª ¾Æ´Ï¸é ¾Æ·¡¿Í °°ÀÌ
nohup java -Djava.awt.headless=true -mx2048m -cp /home/myuser:/home/ab/GIS/mapservice/server/gms-5a- ...
ÇؾߵÇÁö ¾ÊÀ»±î¿ä
2.
sh $CATALINA_HOME/startservice.sh > /dev/null 2>&1
shellÀ» ½ÇÇàÇÒ¶§µµ nohupÀ» ÇÏ°í ¸¶Áö¸·¿¡ &¸¦ Ãß°¡ÇØ¾ß ¼¼¼ÇÀÌ Á¾·áµÇ¾îµµ ¹é±×¶ó¿îµå¿¡¼ ½ÇÇàÀÌ µË´Ï´Ù.
±×¸®°í JAVA_OPT="-mx2048m" -Xmx ¿É¼ÇÀ¸·Î ¾Ð´Ï´Ù.