#!/bin/bash
#jar包名
JAR_NAME=xxxxx.jar
#jar包路径 默认jar包路径和sh路径一致
JAR_PATH=$(cd `dirname $0`; pwd)
#JVM参数
JVM_OPTS="-Dname=$JAR_NAME -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"
if [ "$1" = "" ];
then
echo -e "\033[0;31m 未输入操作名 \033[0m \033[0;34m {start|stop|restart|status} \033[0m"
exit 1
fi
if [ "$JAR_NAME" = "" ];
then
echo -e "\033[0;31m 未输入应用名 \033[0m"
exit 1
fi
#检查程序是否在运行
is_exist(){
pid=`ps -ef|grep java|grep $JAR_NAME|grep -v grep|awk '{print $2}' `
#如果不存在返回1,存在返回0
if [ -z "${pid}" ]; then
return 1
else
return 0
fi
}
#启动
function start()
{
is_exist
if [ $? -eq "0" ]; then
echo ">>> $JAR_NAME is already running PID=$pid <<<"
else
nohup java -jar $JVM_OPTS $JAR_PATH/$JAR_NAME /dev/null 2>&1 &
echo ">>> start $JAR_NAME success... PID=$! <<<"
fi
}
#停止
function stop()
{
echo ">>> Stop $JAR_NAME <<<"
is_exist
if [ $? -eq "0" ]; then
kill -TERM $pid
echo ">>> $JAR_NAME (pid:$pid) exiting... <<<"
while [ $? -eq "0" ]
do
sleep 1
is_exist
done
echo ">>> $JAR_NAME exited. <<<"
else
echo ">>> $JAR_NAME already stopped. <<<"
fi
}
#重启
function restart()
{
stop
sleep 2
start
}
#状态
function status()
{
is_exist
if [ $? -eq "0" ]; then
echo ">>> $JAR_NAME is running... PID=$pid <<<"
else
echo ">>> $JAR_NAME is not running... <<<"
fi
}
case $1 in
start)
start;;
stop)
stop;;
restart)
restart;;
status)
status;;
*)
esac









网友评论