#!/bin/bash # ============================================================================ # 后台学习脚本 - 启动 sub-agent 进行持续学习 # ============================================================================ # 启动青龙后台学习 start_qinglong_bg_learning() { echo "[$(date)] 启动青龙后台学习..." >> /var/log/openclaw/sleep-learning/background.log # 使用 nohup 后台运行,自动学习 10 轮 nohup /root/.openclaw/scripts/auto-learning.sh 10 > /tmp/qinglong-bg-learning.log 2>&1 & QL_PID=$! echo $QL_PID > /tmp/qinglong-bg-learning.pid echo "青龙后台学习已启动 (PID: $QL_PID)" } # 启动守护者后台学习 start_guardian_bg_learning() { echo "[$(date)] 启动守护者后台学习..." >> /var/log/openclaw/sleep-learning/background.log nohup /root/.openclaw/scripts/auto-learning.sh 10 > /tmp/guardian-bg-learning.log 2>&1 & GR_PID=$! echo $GR_PID > /tmp/guardian-bg-learning.pid echo "守护者后台学习已启动 (PID: $GR_PID)" } # 启动所有后台学习 start_all() { start_qinglong_bg_learning start_guardian_bg_learning } # 检查状态 status() { echo "========================================" echo "🔄 后台学习状态" echo "========================================" echo "" if [ -f /tmp/qinglong-bg-learning.pid ]; then QL_PID=$(cat /tmp/qinglong-bg-learning.pid) if ps -p $QL_PID > /dev/null 2>&1; then echo "🐉 青龙:运行中 (PID: $QL_PID)" echo " 日志: /tmp/qinglong-bg-learning.log" else echo "🐉 青龙:已结束" fi else echo "🐉 青龙:未启动" fi if [ -f /tmp/guardian-bg-learning.pid ]; then GR_PID=$(cat /tmp/guardian-bg-learning.pid) if ps -p $GR_PID > /dev/null 2>&1; then echo "🛡️ 守护者:运行中 (PID: $GR_PID)" echo " 日志: /tmp/guardian-bg-learning.log" else echo "🛡️ 守护者:已结束" fi else echo "🛡️ 守护者:未启动" fi } # 主程序 case "$1" in start-qinglong) start_qinglong_bg_learning ;; start-guardian) start_guardian_bg_learning ;; start-all) start_all ;; status) status ;; *) echo "用法: $0 {start-qinglong|start-guardian|start-all|status}" exit 1 ;; esac