| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 | #!/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=$1fiif [ "$AppName" = "" ]; then    echo -e "\033[0;31m 未输入应用名 \033[0m"    exit 1fifunction 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
 |