linux下jar启动、停止、重启脚本

#!/bin/bash

# 设置 Java 运行环境路径
JAVA_HOME="$JAVA_HOME"

# 设置应用程序 JAR 文件路径 绝对路径
APP_JAR="$(pwd)/xxx.jar"

# 设置 JVM 参数
JAVA_OPTS="$JAVA_OPTS -Xms2048m -Xmx2048m -Dfile.encoding=UTF-8"
JAVA_OPTS="$JAVA_OPTS --add-opens java.base/java.io=ALL-UNNAMED
  --add-opens java.base/java.math=ALL-UNNAMED \
  --add-opens java.base/java.net=ALL-UNNAMED \
  --add-opens java.base/java.nio=ALL-UNNAMED \
  --add-opens java.base/java.security=ALL-UNNAMED \
  --add-opens java.base/java.text=ALL-UNNAMED \
  --add-opens java.base/java.time=ALL-UNNAMED \
  --add-opens java.base/java.util=ALL-UNNAMED \
  --add-opens java.base/jdk.internal.access=ALL-UNNAMED \
  --add-opens java.base/jdk.internal.misc=ALL-UNNAMED \
  --add-opens java.base/java.util=ALL-UNNAMED \
  --add-opens java.base/java.lang=ALL-UNNAMED \
  --add-opens java.base/jdk.internal.perf=ALL-UNNAMED \
  --add-exports java.base/jdk.internal.perf=ALL-UNNAMED \
  --add-opens java.management/sun.management.counter.perf=ALL-UNNAMED \
  --add-opens java.management/sun.management.counter=ALL-UNNAMED "
## 设置启动环境
JAVA_OPTS="$JAVA_OPTS -Dspring.profiles.active=dev"
# 定义函数:启动应用程序
start() {
    echo "Starting the application..."
    #有nohub日志
    nohup $JAVA_HOME/bin/java $JAVA_OPTS -jar $APP_JAR  >> nohup.out 2>&1 &
    #指null nohub日志
    #nohup $JAVA_HOME/bin/java $JAVA_OPTS -jar $APP_JAR >/dev/null 2>&1
    pid=$!
    # 将进程 ID 写入到文件中
    echo "$pid" > app.pid
    echo "Application started."
}

# 定义函数:重启应用程序
restart() {
    echo "Restarting the application..."
    stop
    start
}


# 定义函数:关闭应用程序
stop() {
    echo "Stopping the application..."

    # 检查是否存在 PID 文件
    if [ ! -f "app.pid" ]; then
        echo "Error: PID file 'app.pid' not found."
        exit 1
    fi

    # 从 PID 文件中读取进程 ID (PID)
    pid=$(cat app.pid)

    # 检查进程是否存在
    if [ -n "$pid" ] && ps -p $pid > /dev/null; then
        # 终止应用程序的运行
        kill $pid
        echo "Application stopped."
    else
        echo "Application is not running."
    fi
}

# 根据命令参数执行相应操作
case "$1" in
    start)
        start
        ;;
    stop)
        stop
        ;;
    restart)
        restart
        ;;
    *)
        echo "Usage: $0 {start|stop|restart}"
        exit 1
        ;;
esac

exit 0

将以上代码保存为run.sh文件

然后给run.sh添加执行权限

使用时./run.sh,输入命令执行

扫码领红包

微信赞赏支付宝扫码领红包

发表回复

后才能评论