Files

55 lines
1.2 KiB
Bash
Executable File

#!/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