#!/bin/bash # 结伴客后端服务停止脚本 # 设置颜色输出 RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' NC='\033[0m' # No Color # 停止服务 stop_server() { echo -e "${GREEN}正在停止结伴客后端服务...${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 "${GREEN}找到以下结伴客后端服务进程: $PIDS${NC}" for PID in $PIDS; do echo -e "${GREEN}正在停止进程 $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}" } # 显示帮助信息 show_help() { echo "结伴客后端服务停止脚本" echo "" echo "使用方法:" echo " ./stop.sh - 停止所有结伴客后端服务进程" echo " ./stop.sh help - 显示帮助信息" } # 主逻辑 main() { echo -e "${GREEN}========== 结伴客后端服务停止脚本 ==========${NC}" # 检查参数 case "$1" in "help"|"-h"|"--help") show_help ;; *) stop_server ;; esac } # 执行主逻辑 main "$@"