jar包自启动脚本
来源:原创
时间:2018-09-18
作者:脚本小站
分类:SHELL
#!/bin/bash # #chkconfig: 2345 80 90 #for jar start stop . /etc/init.d/functions . /etc/profile APPNAME=permission-service PIDFILE=/var/run/${APPNAME}.pid FILEPATH=/opt/${APPNAME}/target/${APPNAME}.jar JAVA_OPTS="-Xms1024m -Xmx1024m" JAVA_HOME=/usr/java/jdk1.8.0_92 JAVA=$JAVA_HOME/bin/java start(){ process_stat STAT=$? if [ $STAT -eq 0 ];then echo "$APPNAME is running" return $STAT elif [ $STAT -eq 1 ];then echo "$APPNAME is running,but pid file is incorrect!" return $STAT elif [ $STAT -eq 2 ];then echo "$APPNAME is running,but pid file is incorrect!" return $STAT elif [ $STAT -eq 3 ];then echo -n "Start $APPNAME: " nohup $JAVA -jar $JAVA_OPTS ${FILEPATH} >/dev/null 2>&1 & echo $! > ${PIDFILE} echo "[ok]" fi } stop(){ process_stat STAT=$? if [ $STAT -eq 0 ];then echo -n "Stop $APPNAME:" killproc -p ${PIDFILE} -d 3 process_stat if [ $? -eq 3 ];then echo "[OK]" fi elif [ $STAT -eq 1 ];then echo "can not stop $APPNAME process,the pid file is incorrect!" return $STAT elif [ $STAT -eq 2 ];then echo "can not stop $APPNAME process,the pid file is incorrect!" return $STAT elif [ $STAT -eq 3 ];then echo "$APPNAME is stopped" return 0 fi } status(){ process_stat STAT=$? if [ $STAT -eq 0 ];then echo "$APPNAME is running" return $STAT elif [ $STAT -eq 1 ];then echo "$APPNAME is running,but pid file is incorrect!" return $STAT elif [ $STAT -eq 2 ];then echo "$APPNAME is running,but pid file is incorrect!" return $STAT elif [ $STAT -eq 3 ];then echo "$APPNAME is stopped" return $STAT fi } process_stat(){ pid1=`ps -ef |grep ${APPNAME} |grep -v grep|grep java |awk -F" " '{print $2}'` pid2=`cat ${PIDFILE} 2>/dev/null` if [ -n "$pid1" ];then if [ -n "$pid2" ];then if [ "$pid1" = "$pid2" ];then return 0 else return 1 fi else return 2 fi else #echo "$APPNAME is stopped" return 3 fi } case "$1" in start) start ;; stop) stop ;; restart) stop start ;; status) status ;; *) printf 'Usage: %s {start|stop|restart|status}\n' "$APPNAME" exit 1 ;; esac