背景
一些小型项目未上k8s,直接在云服务器上部署,经常手动部署jar包,现记录常用shell脚本,里面都有注释,主要是重启服务。
#!/bin/bash# 定义应用程序名称和路径
JAR_NAME="demo-0.0.1.jar"
JAR_PATH="/opt/data/$JAR_NAME"# 输出当前正在运行的进程
echo "正在运行的进程:"
ps aux | grep $JAR_NAME | grep -v grep# 停止已经运行的进程
echo "停止进程:"
ps aux | grep $JAR_NAME | grep -v grep | awk '{print $2}' | while read pid
doecho "停止进程 $pid"kill -9 $pid
donesleep 10# 检查进程是否停止完全
while ps aux | grep $JAR_NAME | grep -v grep >/dev/null;
doecho "等待进程停止..."
done# 启动Java程序
echo "启动进程..."
nohup java -jar $JAR_PATH --server.port=80 --spring.config.location=/opt/data/application.yml > /dev/null 2>&1 &# 输出最新启动的进程号
echo "最新启动的进程号:"
ps aux | grep $JAR_NAME | grep -v grep | awk '{print $2}'