#!/bin/bash # 通用爬虫系统 - 启动/停止脚本 (PID 文件管理) cd "$(dirname "$0")" PY=/home/hz1/miniconda3/envs/openclaw/bin/python PORT=${CRAWLER_PORT:-16062} PIDFILE=logs/app.pid get_pid() { if [ -f "$PIDFILE" ]; then cat "$PIDFILE" 2>/dev/null fi } is_running() { local pid=$(get_pid) [ -n "$pid" ] && kill -0 "$pid" 2>/dev/null } case "$1" in stop) if is_running; then kill $(get_pid) && rm -f "$PIDFILE" && echo "已停止" else rm -f "$PIDFILE"; echo "未在运行" fi ;; restart) if is_running; then kill $(get_pid); sleep 1; fi rm -f "$PIDFILE" mkdir -p logs nohup $PY app.py > logs/app.log 2>&1 & echo $! > "$PIDFILE" sleep 1 echo "已重启, PID $(get_pid) (端口 $PORT)" ;; status) if is_running; then echo "运行中, PID $(get_pid) (端口 $PORT)" else echo "未运行" fi ;; *) if is_running; then echo "已在运行, PID $(get_pid) (端口 $PORT)"; exit 0 fi mkdir -p logs nohup $PY app.py > logs/app.log 2>&1 & echo $! > "$PIDFILE" sleep 1 echo "已启动, PID $(get_pid) (端口 $PORT)" echo "管理界面: http://$(hostname -I | awk '{print $1}'):$PORT/" ;; esac