jar包启动脚本(shell)

脚本内容

创建sh文件vi xxx.sh贴上内容,然后:wq保存退出。


文件内容:
#!/bin/sh

#这里可替换为你自己的执行程序,其他代码无需更改
PIDFILE=xxx.pid
service=xxx

#使用说明,用来提示输入参数
usage() {
   echo "Usage: sh demo.sh [start|stop|status]"
   exit 1
}


#检查程序是否在运行
is_exist() { 
    pid=`ps -ef | grep $service.jar | grep -v grep | awk '{print $2}' `
    echo "pid==${pid}"
    #如果不存在返回1,存在返回0
    if [ -z "${pid}" ]; then
       return 1
    else
       return 0
    fi
}

case "$1" in
    start)
        is_exist
        RETVAL=$?
        if [ $RETVAL -eq 0 ]; then
            echo "$PIDFILE exists, process is already running or crashed"
            exit 1
        fi
        
        echo "Starting $service ..."
	nohup java -Xms256m -Xmx512m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/var/opt/logs/$service/$service.dump -jar $service.jar --spring.profiles.active=test > /dev/null 2>&1 &
        RETVAL=$?
        if [ $RETVAL -eq 0 ]; then
            echo "$service is started"
            echo $! > $PIDFILE
            exit 0
        else
            echo "Stopping $service"
            kill $pid
	    sleep 5s
	    kill -9 $pid
	    rm -f $PIDFILE
            exit 1
        fi
        ;;
    stop)
        is_exist
        RETVAL=$?
        if [ $RETVAL -eq 0 ]; then
            kill -9 $pid
	    rm -f $PIDFILE
	    echo "Shutting down $service"
        else
            echo "Failed to stopping $service"
        fi
        ;;
    status)
        is_exist
        RETVAL=$?
        if [ $RETVAL -eq 0 ]; then
            echo "$service is running ($pid)"
        else
            echo "$service is not running"
        fi
        ;;
    *)
    echo "Usage: $0 {start|stop|status}"
    ;;
esac

指令

sh xxx.sh start     启动
sh xxx.sh stop      停止
sh xxx.sh restart   重启
sh xxx.sh status    状态

说明

# -Xmx20m -Xms5m -XX:HeapDumpOnOutofMemoryError -XX:HeapDumpPath=/var/a.dump
# 分配了20M最大空间 ,启动 最小空间5M , 发生了 内存溢出错误 dump路径为a.dump
# 2>&1 输出所有的日志文件
# ${path}.log  日志输出地址
# & 后台启动
原文链接:https://blog.csdn.net/weixin_40991408/article/details/88997180

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注