stop_prod.sh 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. #!/bin/bash
  2. # 新用户注册邮件通知服务 - 停止脚本
  3. set -e
  4. SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
  5. cd "$SCRIPT_DIR"
  6. GREEN='\033[0;32m'
  7. YELLOW='\033[1;33m'
  8. RED='\033[0;31m'
  9. NC='\033[0m'
  10. PID_FILE="$SCRIPT_DIR/send_new_user_email.pid"
  11. if [ -f "$PID_FILE" ]; then
  12. PID=$(cat "$PID_FILE")
  13. if ps -p "$PID" > /dev/null 2>&1; then
  14. echo -e "${YELLOW}🛑 正在停止服务 (PID: $PID)...${NC}"
  15. kill "$PID"
  16. for i in {1..10}; do
  17. if ! ps -p "$PID" > /dev/null 2>&1; then
  18. break
  19. fi
  20. sleep 1
  21. done
  22. if ps -p "$PID" > /dev/null 2>&1; then
  23. kill -9 "$PID" 2>/dev/null || true
  24. fi
  25. rm -f "$PID_FILE"
  26. echo -e "${GREEN}✅ 服务已停止${NC}"
  27. else
  28. echo -e "${YELLOW}⚠️ 进程不存在 (PID: $PID)${NC}"
  29. rm -f "$PID_FILE"
  30. fi
  31. else
  32. PIDS=$(pgrep -f "send_new_user_email.py" || true)
  33. if [ -n "$PIDS" ]; then
  34. echo -e "${YELLOW}🛑 正在停止服务...${NC}"
  35. echo "$PIDS" | xargs kill 2>/dev/null || true
  36. sleep 2
  37. echo "$PIDS" | xargs kill -9 2>/dev/null || true
  38. echo -e "${GREEN}✅ 服务已停止${NC}"
  39. else
  40. echo -e "${YELLOW}⚠️ 未找到运行中的服务${NC}"
  41. fi
  42. fi