Spring Boot是Java的一个流行框架,用于开发企业级应用程序。本脚本可以在Linux
服务器上部署Spring Boot应用,并通过一个脚本实现启动、停止、重启等操作,本脚本由博主亲自编写和测试没问题,请方式使用。
步骤1: 准备环境
确保你的Linux服务器上已经安装了合适版本的Java。通过运行java -version
来验证。
步骤2: 上传你的JAR文件
将你的Spring Boot应用的JAR文件上传到服务器上的某个目录,例如/opt/myapp/myapp.jar
。
步骤3: 创建管理脚本
在Linux服务器
上创建一个新文件,例如szxblog.sh
,并粘贴以下内容:
#!/bin/bash
# 公共路径
BASE_PATH="/usr/local/java/jar/api-service"
# 应用名称(就是jar包名称,不包含后缀)
JAR_NAME="api-service"
# 定义JAR文件的路径
JAR_PATH="$BASE_PATH/$JAR_NAME.jar"
# 1.定义Java虚拟机的选项,初始化值大小需要一样,减少fu gc频率,降低波动
# 2.添加-XX:+HeapDumpOnOutOfMemoryError参数
JAVA_OPTS="-Xms2048m -Xmx2048m -XX:+HeapDumpOnOutOfMemoryError"
# 定义PID文件的路径 自定义用法
PID_PATH="/usr/local/java/jar/api-service/$JAR_NAME.pid"
# 定义日志文件的路径
LOG_PATH="$BASE_PATH/$JAR_NAME.log"
start() {
# 检查是否已运行
if [ -f $PID_PATH ] && ps -p $(cat $PID_PATH) > /dev/null; then
echo "应用程序已经在运行。"
exit 0
fi
# 启动应用
echo "开始启动应用程序"
nohup java $JAVA_OPTS -jar $JAR_PATH > $LOG_PATH 2>&1 &
echo $! > $PID_PATH
# 检查应用是否启动
sleep 5 # 等待一些秒来确保应用有时间启动
if ps -p $(cat $PID_PATH) > /dev/null; then
echo "应用程序启动成功."
else
echo "应用程序启动失败."
exit 1
fi
}
stop() {
# 检查是否正在运行
if [ ! -f $PID_PATH ] || ! ps -p $(cat $PID_PATH) > /dev/null; then
echo "应用程序没有在运行。"
exit 0
fi
# 停止应用
echo "开始停止应用程序."
SIGNAL=${2:-15} # 默认信号是SIGTERM (15),除非指定了其他信号
kill -${SIGNAL} $(cat $PID_PATH)
rm $PID_PATH
echo "应用程序已停止成功."
}
restart() {
SIGNAL=${1:-15} # 使用第一个参数作为停止信号,默认为SIGTERM (15)
stop $SIGNAL
start
}
# 基于命令行参数执行相应操作
case $1 in
start)
start
;;
stop)
stop $2
;;
restart)
restart $2 # 仅传递停止信号给restart函数
;;
*)
echo "用法: $0 {start|stop|restart} [信号]"
exit 1
;;
esac
# 使用命令示例:
# 启动应用: ./script.sh start
# 停止应用: ./script.sh stop
# 重启应用: ./script.sh restart
请确保修改JAR_PATH
、JAVA_OPTS
、PID_PATH
和LOG_PATH
等变量的值,以匹配你的具体情况。
步骤4: 赋予脚本执行权限
在终端中,导航到脚本所在的目录,并运行以下命令赋予执行权限:
chmod +x szxblog.sh
步骤5: 使用脚本管理应用
你现在可以使用以下命令来启动、停止和重启你的Spring Boot应用:
- 启动:
./szxblog.sh start
- 停止:
./szxblog.shh stop
- 重启:
./szxblog.sh restart
结论
这个脚本提供了一个简单而强大的方法来管理你的Spring Boot应用程序。通过修改几个关键的变量,你可以轻松地将其适应到你自己的项目中。
2 comments
步骤5的停止那里是不是多了个“h”。
我也改写过类似的脚本,以下几条可供参考:
(1)当./szxblog.sh 无参数时输出可支持的全部参数,输出语句可以是闪烁效果;
(2)可以有./szxblog.sh status 查看当前进程状态,是否为运行中;
(3)kill命令可以区分-9 和 - 15,用于某些时候的优雅停机;
步骤5没有多h啊,我测试过的
./szxblog.sh start 启动./szxblog.sh stop 停止./szxblog.sh restart 重启