run.sh 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. #!/bin/bash
  2. # LQMDRetrieval 服务管理脚本
  3. APP_DIR="$(cd "$(dirname "$0")" && pwd)"
  4. PID_FILE="$APP_DIR/logs/server.pid"
  5. LOG_FILE="$APP_DIR/logs/server.log"
  6. start() {
  7. if [ -f "$PID_FILE" ]; then
  8. PID=$(cat "$PID_FILE")
  9. if kill -0 "$PID" 2>/dev/null; then
  10. echo "服务已在运行 (PID: $PID)"
  11. return 1
  12. fi
  13. fi
  14. mkdir -p "$APP_DIR/logs"
  15. cd "$APP_DIR"
  16. nohup python run_server.py > "$LOG_FILE" 2>&1 &
  17. echo $! > "$PID_FILE"
  18. echo "服务已启动 (PID: $(cat "$PID_FILE"))"
  19. }
  20. stop() {
  21. if [ -f "$PID_FILE" ]; then
  22. PID=$(cat "$PID_FILE")
  23. if kill -0 "$PID" 2>/dev/null; then
  24. kill "$PID"
  25. echo "服务已停止 (PID: $PID)"
  26. else
  27. echo "服务未运行"
  28. fi
  29. rm -f "$PID_FILE"
  30. else
  31. echo "服务未运行"
  32. fi
  33. }
  34. restart() {
  35. stop
  36. sleep 2
  37. start
  38. }
  39. status() {
  40. if [ -f "$PID_FILE" ]; then
  41. PID=$(cat "$PID_FILE")
  42. if kill -0 "$PID" 2>/dev/null; then
  43. echo "服务正在运行 (PID: $PID)"
  44. else
  45. echo "服务未运行 (PID 文件存在但进程不存在)"
  46. fi
  47. else
  48. echo "服务未运行"
  49. fi
  50. }
  51. case "$1" in
  52. start) start ;;
  53. stop) stop ;;
  54. restart) restart ;;
  55. status) status ;;
  56. *) echo "用法: $0 {start|stop|restart|status}" ;;
  57. esac