diff --git a/deploy_from_git.sh b/deploy_from_git.sh index bd1f69e..86934a3 100755 --- a/deploy_from_git.sh +++ b/deploy_from_git.sh @@ -9,6 +9,8 @@ SERVER_USER="root" SERVER_PASSWORD="1blZllMIp7" APP_DIR="/opt/designhub" GIT_REPO="http://chenpei:jsjj654321@git.1080p.hk/chenpei/qiangdanxitong.git" +SERVICE_NAME="designhub-backend" +SERVICE_ALIAS="designhub" # 颜色定义 GREEN='\033[0;32m' @@ -71,11 +73,21 @@ echo -e "${BLUE}[4/6] 复制JAR文件...${NC}" cp target/designhub-backend-1.0.0.jar ${APP_DIR}/designhub.jar echo -e "${BLUE}[5/6] 重启服务...${NC}" +# 确保服务别名和主服务名指向同一个 systemd 单元 +if [ -f "/etc/systemd/system/${SERVICE_NAME}.service" ]; then + if [ -f "/etc/systemd/system/${SERVICE_ALIAS}.service" ] && [ ! -L "/etc/systemd/system/${SERVICE_ALIAS}.service" ]; then + mv "/etc/systemd/system/${SERVICE_ALIAS}.service" "/etc/systemd/system/${SERVICE_ALIAS}.service.bak.\$(date +%Y%m%d_%H%M%S)" + fi + ln -sfn "/etc/systemd/system/${SERVICE_NAME}.service" "/etc/systemd/system/${SERVICE_ALIAS}.service" + systemctl daemon-reload +fi + # 先停止服务 -systemctl stop designhub 2>/dev/null || true +systemctl stop ${SERVICE_NAME} 2>/dev/null || true +systemctl stop ${SERVICE_ALIAS} 2>/dev/null || true sleep 2 # 确保端口5123没有被占用(清理僵尸Java进程) -pkill -9 -f "designhub.jar" 2>/dev/null || true +pkill -9 -f "/opt/designhub/designhub.jar" 2>/dev/null || true sleep 2 # 确认端口已释放 if ss -tlnp | grep -q ":5123"; then @@ -84,8 +96,8 @@ if ss -tlnp | grep -q ":5123"; then sleep 2 fi # 重置失败状态并启动服务 -systemctl reset-failed designhub 2>/dev/null || true -systemctl start designhub +systemctl reset-failed ${SERVICE_NAME} ${SERVICE_ALIAS} 2>/dev/null || true +systemctl start ${SERVICE_NAME} echo "" echo -e "${GREEN}等待服务启动...${NC}" @@ -93,7 +105,7 @@ sleep 15 echo "" echo -e "${BLUE}[6/6] 检查服务状态...${NC}" -systemctl status designhub --no-pager | head -15 +systemctl status ${SERVICE_NAME} --no-pager | head -15 echo "" echo -e "${GREEN}✅ 部署完成!${NC}" diff --git a/deploy_to_public_server.sh b/deploy_to_public_server.sh index 3cb36fb..a591912 100755 --- a/deploy_to_public_server.sh +++ b/deploy_to_public_server.sh @@ -362,7 +362,7 @@ After=network.target mysqld.service redis.service Type=simple User=root WorkingDirectory=${APP_DIR} -ExecStart=/usr/bin/java -jar -Xms512m -Xmx1024m ${APP_DIR}/designhub.jar --spring.profiles.active=prod +ExecStart=/usr/bin/java -Xms512m -Xmx1024m -jar ${APP_DIR}/designhub.jar --spring.profiles.active=prod --server.address=127.0.0.1 Restart=on-failure RestartSec=10 @@ -373,6 +373,12 @@ StandardError=append:${APP_DIR}/logs/backend-error.log WantedBy=multi-user.target EOF +# 统一旧服务名 designhub 到同一份 systemd 单元,避免双服务互相抢占 5123 端口 +if [ -f /etc/systemd/system/designhub.service ] && [ ! -L /etc/systemd/system/designhub.service ]; then + mv /etc/systemd/system/designhub.service /etc/systemd/system/designhub.service.bak.$(date +%Y%m%d_%H%M%S) +fi +ln -sfn /etc/systemd/system/designhub-backend.service /etc/systemd/system/designhub.service + # 创建 Nginx 配置 cat > /etc/nginx/conf.d/designhub.conf << EOF server { @@ -476,6 +482,7 @@ show_deployment_info() { echo " 查看后端状态: ssh ${SERVER_USER}@${SERVER_IP} 'systemctl status designhub-backend'" echo " 查看后端日志: ssh ${SERVER_USER}@${SERVER_IP} 'tail -f ${APP_DIR}/logs/application.log'" echo " 重启后端: ssh ${SERVER_USER}@${SERVER_IP} 'systemctl restart designhub-backend'" + echo " 兼容旧命令: ssh ${SERVER_USER}@${SERVER_IP} 'systemctl restart designhub' # designhub 为 designhub-backend 别名" echo "" echo "数据库信息:" echo " 数据库名: ${DB_NAME}" diff --git a/服务器部署命令.txt b/服务器部署命令.txt index 28fdbbe..c9b90fb 100644 --- a/服务器部署命令.txt +++ b/服务器部署命令.txt @@ -25,11 +25,11 @@ mvn clean package -DskipTests # 5. 复制JAR文件 cp target/designhub-backend-1.0.0.jar /opt/designhub/designhub.jar -# 6. 重启服务 -systemctl restart designhub +# 6. 重启服务(主服务名为 designhub-backend,designhub 为兼容别名) +systemctl restart designhub-backend # 7. 检查服务状态 -systemctl status designhub +systemctl status designhub-backend # 8. 查看日志(可选) -tail -f /opt/designhub/logs/application.log +journalctl -u designhub-backend -f