Files
jiebanke/backend/restart.sh
aiotagro b2d940e014 docs(deployment): 更新部署文档并添加自动化部署脚本
- 更新了 DEPLOYMENT.md 文档,增加了更多部署细节和说明
- 添加了 Linux 和 Windows 平台的自动化部署脚本
- 更新了 README.md,增加了部署相关说明
- 调整了 .env 文件配置,以适应新的部署流程
- 移除了部分不必要的代码和配置
2025-09-10 14:16:27 +08:00

107 lines
2.6 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
# 结伴客后端服务重启脚本
# 设置颜色输出
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m' # No Color
# 停止服务
stop_server() {
echo -e "${BLUE}正在停止结伴客后端服务...${NC}"
# 查找并停止结伴客后端服务进程
PIDS=$(ps aux | grep "node src/server.js" | grep -v grep | awk '{print $2}')
if [ -z "$PIDS" ]; then
echo -e "${YELLOW}未找到正在运行的结伴客后端服务进程${NC}"
return 0
fi
echo -e "${BLUE}找到以下结伴客后端服务进程: $PIDS${NC}"
for PID in $PIDS; do
echo -e "${BLUE}正在停止进程 $PID...${NC}"
kill $PID
# 等待进程结束
COUNT=0
while kill -0 $PID 2>/dev/null; do
sleep 1
COUNT=$((COUNT + 1))
if [ $COUNT -gt 10 ]; then
echo -e "${YELLOW}进程 $PID 未能正常停止,正在强制终止...${NC}"
kill -9 $PID
break
fi
done
echo -e "${GREEN}进程 $PID 已停止${NC}"
done
echo -e "${GREEN}结伴客后端服务已停止${NC}"
}
# 启动服务
start_server() {
echo -e "${BLUE}正在启动结伴客后端服务...${NC}"
# 检查是否提供了参数
if [ "$1" = "dev" ]; then
# 开发模式
if command -v nodemon &> /dev/null; then
nodemon src/server.js
else
echo -e "${YELLOW}未安装 nodemon使用 node 运行...${NC}"
node src/server.js
fi
else
# 生产模式
node src/server.js
fi
}
# 重启服务
restart_server() {
stop_server
sleep 2
start_server "$1"
}
# 显示帮助信息
show_help() {
echo "结伴客后端服务重启脚本"
echo ""
echo "使用方法:"
echo " ./restart.sh - 重启服务(生产模式)"
echo " ./restart.sh dev - 重启服务(开发模式)"
echo " ./restart.sh help - 显示帮助信息"
echo ""
echo "说明:"
echo " 生产模式: 使用 node 直接运行服务"
echo " 开发模式: 使用 nodemon 运行服务(支持热重载)"
}
# 主逻辑
main() {
echo -e "${GREEN}========== 结伴客后端服务重启脚本 ==========${NC}"
# 检查参数
case "$1" in
"help"|"-h"|"--help")
show_help
;;
"dev")
restart_server "dev"
;;
*)
restart_server
;;
esac
}
# 执行主逻辑
main "$@"