原创

springboot,编写service.sh脚本,控制服务启停

使用说明

启动或重启,并打印日志,输入:

./service.sh

启动或重启,不打印日志,输入:

./service.sh noLog

停止,输入:

./service.sh stop

配置内容

配置JAR文件的名称,使用的端口号,JDK的安装目录(未填写时,使用环境变量),以及 -Xms 和 -Xmx的值

JAR_NAME="*.jar"
PORT_NUMBER=8080
JDK_DIR=""
XMS="1g"
XMX="1g"

service.sh 内容

下载文件 service.sh

#!/bin/bash

# 使用说明
# 输入:./service.sh 启动或重启,并打印日志
# 输入:./service.sh noLog 启动或重启,不打印日志
# 输入:./service.sh stop 停止

# 配置JAR文件的名称,使用的端口号,JDK的安装目录(未填写时,使用环境变量),以及 -Xms 和 -Xmx的值
JAR_NAME="*.jar"
PORT_NUMBER=8080
JDK_DIR=""
XMS="1g"
XMX="1g"

function start() {
    echo "starting application"
    if [ -z "$JDK_DIR" ]; then
        nohup java -Xms$XMS -Xmx$XMX -jar $JAR_NAME >>out.txt 2>&1 &
    else
        nohup $JDK_DIR/bin/java -Xms$XMS -Xmx$XMX -jar $JAR_NAME >>out.txt 2>&1 &
    fi
    if [ "$1" != "noLog" ]; then
        tail -f ./out.txt
    fi
}

function stop() {
    PID=$(netstat -tunlp | grep -w $PORT_NUMBER | awk '{ print substr($7,1,index($7,"/") - 1) }')
    if [ -z "$PID" ]; then
        echo "application is already stopped"
    else
        echo "kill $PID"
        kill -9 $PID
    fi
}

case "$1" in
    "stop")
        stop
        ;;
    "noLog")
        stop
        start "noLog"
        ;;
    *)
        stop
        start
        ;;
esac
正文到此结束