1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
#!/bin/bash
# 配置参数
JAR_NAME="app.jar" # 替换为您的jar包名称
PID_FILE="pid.txt"
JAVA_OPTS="-Xms2048m -Xmx2048m" # 可根据需要调整JVM参数
# 检查并终止现有进程
if [ -f "$PID_FILE" ]; then
OLD_PID=$(cat "$PID_FILE")
if ps -p $OLD_PID > /dev/null 2>&1; then
echo "发现现有进程 PID: $OLD_PID,正在终止..."
kill $OLD_PID
sleep 3
# 检查是否成功终止
if ps -p $OLD_PID > /dev/null 2>&1; then
echo "强制终止进程..."
kill -9 $OLD_PID
sleep 2
fi
echo "进程已终止"
else
echo "PID文件存在但进程不存在,清理旧PID文件"
fi
rm -f "$PID_FILE"
fi
# 启动新的jar进程
echo "启动应用: $JAR_NAME"
nohup java -Xms512m -Xmx1024m -jar app.jar -spring.config.location=./config/ > log.txt 2>&1 &
# 获取并保存PID
NEW_PID=$!
echo $NEW_PID > $PID_FILE
echo "应用已启动,PID: $NEW_PID 已保存到 $PID_FILE"
# 验证进程是否运行
sleep 2
if ps -p $NEW_PID > /dev/null 2>&1; then
echo "应用启动成功,PID: $NEW_PID"
else
echo "警告:应用可能启动失败,请检查nohup.out日志"
rm -f "$PID_FILE"
fi
|