run.sh 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. #!/bin/bash
  2. # 服务管理脚本
  3. START_COMMAND="python run_server.py --host 0.0.0.0 --port 8000"
  4. case "$1" in
  5. start)
  6. if [ -f "$PID_FILE" ]; then
  7. if kill -0 $(cat "$PID_FILE") >/dev/null 2>&1; then
  8. echo "✅ $APP_NAME 已在运行 (PID: $(cat $PID_FILE))"
  9. exit 1
  10. else
  11. rm -f "$PID_FILE"
  12. fi
  13. fi
  14. echo "🚀 启动 $APP_NAME..."
  15. nohup $START_COMMAND >> "$LOG_FILE" 2>&1 &
  16. echo $! > "$PID_FILE"
  17. echo "🟢 启动成功! PID: $(cat $PID_FILE)"
  18. echo "📝 日志输出: $LOG_FILE"
  19. ;;
  20. stop)
  21. if [ ! -f "$PID_FILE" ]; then
  22. echo "🔴 $APP_NAME 未运行"
  23. exit 1
  24. fi
  25. PID=$(cat "$PID_FILE")
  26. echo "🛑 停止 $APP_NAME (PID: $PID)..."
  27. kill -TERM $PID
  28. rm -f "$PID_FILE"
  29. echo "⭕ 已停止"
  30. ;;
  31. restart)
  32. $0 stop
  33. sleep 2
  34. $0 start
  35. ;;
  36. status)
  37. if [ -f "$PID_FILE" ]; then
  38. if kill -0 $(cat "$PID_FILE") >/dev/null 2>&1; then
  39. echo "🟢 $APP_NAME 正在运行 (PID: $(cat $PID_FILE))"
  40. else
  41. echo "❌ PID 文件存在但进程未运行"
  42. rm -f "$PID_FILE"
  43. fi
  44. else
  45. echo "🔴 $APP_NAME 未运行"
  46. fi
  47. ;;
  48. *)
  49. echo "使用方法: $0 {start|stop|restart|status}"
  50. exit 1
  51. esac
  52. exit 0