#!/bin/bash # LQMDRetrieval 服务管理脚本 APP_DIR="$(cd "$(dirname "$0")" && pwd)" PID_FILE="$APP_DIR/logs/server.pid" LOG_FILE="$APP_DIR/logs/server.log" start() { if [ -f "$PID_FILE" ]; then PID=$(cat "$PID_FILE") if kill -0 "$PID" 2>/dev/null; then echo "服务已在运行 (PID: $PID)" return 1 fi fi mkdir -p "$APP_DIR/logs" cd "$APP_DIR" nohup python run_server.py > "$LOG_FILE" 2>&1 & echo $! > "$PID_FILE" echo "服务已启动 (PID: $(cat "$PID_FILE"))" } stop() { if [ -f "$PID_FILE" ]; then PID=$(cat "$PID_FILE") if kill -0 "$PID" 2>/dev/null; then kill "$PID" echo "服务已停止 (PID: $PID)" else echo "服务未运行" fi rm -f "$PID_FILE" else echo "服务未运行" fi } restart() { stop sleep 2 start } status() { if [ -f "$PID_FILE" ]; then PID=$(cat "$PID_FILE") if kill -0 "$PID" 2>/dev/null; then echo "服务正在运行 (PID: $PID)" else echo "服务未运行 (PID 文件存在但进程不存在)" fi else echo "服务未运行" fi } case "$1" in start) start ;; stop) stop ;; restart) restart ;; status) status ;; *) echo "用法: $0 {start|stop|restart|status}" ;; esac