@@ -88,35 +88,48 @@ jobs:
8888 TARGET_DIR="/www/wwwroot/java/openblog"
8989 TARGET_JAR="$TARGET_DIR/OpenBlog-business-1.0.0-SNAPSHOT.jar"
9090 JAVA_HOME="/www/server/java/jdk-17.0.8"
91-
92- # 停止旧进程
93- OLD_PID=$(ps aux | grep 'OpenBlog-business' | grep -v grep | awk '{print $2}')
94- if [ -n "$OLD_PID" ]; then
95- echo "Stopping old process (PID: $OLD_PID)..."
96- kill $OLD_PID
97- sleep 5
98- # 如果还没停,强制 kill
99- if kill -0 $OLD_PID 2>/dev/null; then
100- kill -9 $OLD_PID
101- sleep 2
102- fi
91+ SERVICE_NAME="openblog"
92+
93+ # 确保 systemd service 文件存在
94+ if [ ! -f /etc/systemd/system/${SERVICE_NAME}.service ]; then
95+ cat > /etc/systemd/system/${SERVICE_NAME}.service << 'SVC'
96+ [Unit]
97+ Description=OpenBlog Backend
98+ After=network.target
99+
100+ [Service]
101+ Type=simple
102+ User=root
103+ WorkingDirectory=/www/wwwroot/java/openblog
104+ ExecStart=/www/server/java/jdk-17.0.8/bin/java -jar -Xmx1024M -Xms256M /www/wwwroot/java/openblog/OpenBlog-business-1.0.0-SNAPSHOT.jar
105+ Restart=on-failure
106+ RestartSec=10
107+ StandardOutput=append:/www/wwwroot/java/openblog/app.log
108+ StandardError=append:/www/wwwroot/java/openblog/app.log
109+
110+ [Install]
111+ WantedBy=multi-user.target
112+ SVC
113+ systemctl daemon-reload
103114 fi
104115
116+ # 停止旧服务
117+ systemctl stop ${SERVICE_NAME} || true
118+
105119 # 备份旧 jar
106120 if [ -f "$TARGET_JAR" ]; then
121+ mkdir -p "$TARGET_DIR/backup"
107122 cp "$TARGET_JAR" "$TARGET_DIR/backup/OpenBlog-business-$(date +%Y%m%d-%H%M%S).jar" 2>/dev/null || true
108123 fi
109124
110125 # 复制新 jar
111- mkdir -p "$TARGET_DIR/backup"
112126 cp "$JAR_FILE" "$TARGET_JAR"
113127
114- # 启动新进程
115- cd "$TARGET_DIR"
116- nohup $JAVA_HOME/bin/java -jar -Xmx1024M -Xms256M "$TARGET_JAR" > app.log 2>&1 &
128+ # 启动服务
129+ systemctl start ${SERVICE_NAME}
117130
118131 echo "Deployed $JAR_FILE → $TARGET_JAR"
119- echo "New PID: $!"
132+ systemctl status ${SERVICE_NAME} --no-pager || true
120133
121134 build-frontend :
122135 needs : changes
0 commit comments