#!/bin/bash # remote-host-agent collector 启停脚本(机器A端) # ./start.sh 启动 | ./start.sh stop 停止 | ./start.sh restart 重启 cd "$(dirname "$0")" PY=/home/hz1/miniconda3/envs/openclaw/bin/python3 PORT=${HOST_AGENT_PORT:-16018} PID_FILE="logs/collector.pid" mkdir -p logs case "${1:-start}" in stop) if [ -f "$PID_FILE" ]; then kill "$(cat "$PID_FILE")" 2>/dev/null && echo "已停止 collector (PID $(cat "$PID_FILE"))" || echo "进程不存在" rm -f "$PID_FILE" else echo "未找到 PID 文件" fi ;; restart) "$0" stop; sleep 1; "$0" start ;; start) if [ -f "$PID_FILE" ] && kill -0 "$(cat "$PID_FILE")" 2>/dev/null; then echo "collector 已在运行 (PID $(cat "$PID_FILE"), 端口 $PORT)" exit 0 fi nohup "$PY" collector.py > logs/collector.out 2>&1 & echo $! > "$PID_FILE" sleep 2 if kill -0 "$(cat "$PID_FILE")" 2>/dev/null; then echo "collector 启动成功 (PID $(cat "$PID_FILE"), 端口 $PORT)" echo "Token 文件: $(pwd)/data/token.txt" if [ -f data/token.txt ]; then echo "Token: $(cat data/token.txt)" fi else echo "启动失败,查看 logs/collector.out"; exit 1 fi ;; *) echo "用法: $0 [start|stop|restart]"; exit 1 ;; esac