82 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			82 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
#!/bin/sh
 | 
						|
# ./snail-job.sh start|空 启动 stop 停止 restart 重启 status 状态
 | 
						|
AppName=snail-job-server-exec.jar
 | 
						|
 | 
						|
# JVM参数
 | 
						|
JVM_OPTS="-Dname=$AppName  -Duser.timezone=Asia/Shanghai -XX:+HeapDumpOnOutOfMemoryError -XX:+UseZGC"
 | 
						|
APP_HOME=`pwd`
 | 
						|
 | 
						|
# 检查传入的操作名参数,如果为空则默认设置为 "start"
 | 
						|
if [ "$1" = "" ]; then
 | 
						|
    echo -e "\033[0;34m 未输入操作名,默认操作为: start \033[0m"
 | 
						|
    ACTION="start"
 | 
						|
else
 | 
						|
    ACTION=$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 $JVM_OPTS -jar $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 $ACTION in
 | 
						|
    start)
 | 
						|
    start;;
 | 
						|
    stop)
 | 
						|
    stop;;
 | 
						|
    restart)
 | 
						|
    restart;;
 | 
						|
    status)
 | 
						|
    status;;
 | 
						|
    *)
 | 
						|
    echo -e "\033[0;31m 无效的操作名 \033[0m  \033[0;34m {start|stop|restart|status} \033[0m";;
 | 
						|
esac |