Linux自启动服务守护进程,jar包启动服务shell脚本实现


#!/bin/bash

AppName=platform-admin.jar

#启动参数

JVM_OPTS="-Dname=$AppName -Duser.timezone=Asia/Shanghai -Xms512M -Xmx512M -XX:PermSize=256M -XX:MaxPermSize=512M -XX:+HeapDumpOnOutOfMemoryError -XX:+PrintGCDateStamps -XX:+PrintGCDetails -XX:NewRatio=1 -XX:SurvivorRatio=30 -XX:+UseParallelGC -XX:+UseParallelOldGC"

#获取路径

APP_HOME=`pwd`

#打印路径

#echo "我是路径:$APP_HOME"

#日志路径

LOG_PATH=$APP_HOME/logs/$AppName.log

#判断空参

if [ "$1" = "" ];

then

echo -e "\033[0;31m 请输入参数 \033[0m \033[0;34m {start|stop|restart|status} \033[0m"

exit 1

fi

#判断应用设置

if [ "$AppName" = "" ];

then

echo -e "\033[0;31m 请配置应用名 \033[0m"

exit 1

fi

#启动服务

function start()

{

PID=`ps -ef |grep java|grep $AppName|grep -v grep|awk '{print $2}'`

if [ x"$PID" != x"" ]; then

echo "$AppName is running..."

else

nohup java -jar $JVM_OPTS $APP_HOME/$AppName > /dev/null 2>&1 &

echo "Start $AppName success..."

fi

}

#停止服务

function stop()

{

echo "Stop $AppName"

PID=""

query(){

PID=`ps -ef |grep java|grep $AppName|grep -v grep|awk '{print $2}'`

}

query

if [ x"$PID" != x"" ]; then

kill -TERM $PID

echo "$AppName (pid:$PID) exiting..."

while [ x"$PID" != x"" ]

do

sleep 1

query

done

echo "$AppName exited."

else

echo "$AppName already stopped."

fi

}

#重启

function restart()

{

stop

sleep 2

start

}

#查看状态

function status()

{

PID=`ps -ef |grep java|grep $AppName|grep -v grep|wc -l`

if [ $PID != 0 ];then

echo "$AppName is running..."

else

echo "$AppName is not running..."

fi

}

case $1 in

start)

start;;

stop)

stop;;

restart)

restart;;

status)

status;;

*)

esac

上一篇:第十章 Shell基础


下一篇:sublime安装新