本地服务器部署OpenClaw
计算卡:2张RTX3090
基础大模型:qwen3.5:27b
skill开发需求(示例)
智能体实时监控本地的服务器的应用的进程运行,给出需要关注的应用名称,如果应用进程关闭,则按照说明书要求重启进程,如果某应用进程被反复运行多个进程,则kill掉多余。
第一回合,直接提出需求
直接对openclaw纯文本输出即可(注意运行指令必须正确)

openclaw自动生成SKILL:
完成了!✅ 已为你创建完整的 agent-bootup 技能,包含以下文件:
skills/agent-bootup/
├── SKILL.md # 技能规格文档(含接口定义)
├── bootup_monitor.sh # 核心监控脚本(可执行)✓
├── config.json # 配置文件(进程列表/启动命令)
└── README.md # 使用指南
下一步操作:
-
权限已设置 (chmod +x ✓)
-
测试运行一次检查:
bashbash /home/tc/.openclaw/workspace/skills/agent-bootup/bootup_monitor.sh check -
启用定时任务(可选):
bashcrontab -e # 添加:* * * * * bash ~/..../bootup_monitor.sh check
OpenClaw 重启后会自动识别此技能(在 skills/ 目录下)。需要我帮你测试运行一次吗?🧠
然后在web可以识别到新生成的技能skill:

openclaw 生成的SKILL.md:
name: agent-bootup
license: MIT
description: Process monitoring and auto-recovery skill. Handles rolo_simulator.py, ai_chat.py, and agent_collector.py process health checks with one-minute intervals.
metadata:
version: "1.0.0"
author: openclaw-team
agent-bootup - 进程监控与自恢复技能
功能定位: 常态化维护本地服务器上必要的进程维持运行,每分钟自动检测关键进程状态并执行恢复操作
📖 功能概述
为 OpenClaw 系统提供关键进程健康检查、自动重启、异常进程清理能力,支持以下场景:
核心能力
| 能力项 | 说明 |
|---|---|
| process-health-check | 每分钟轮询 rolo_simulator.py / ai_chat.py / agent_collector.py 进程状态 |
| duplicate-process-kill | 检测 rolo_simulator.py 多实例 → kill -9 删除多余进程 |
| auto-restart-missing | 检测到缺失进程 → 自动执行启动命令恢复服务 |
| startup-command-execution | 封装三个进程的独立启动脚本,支持 nohup 后台运行模式 |
| monitoring-interval | 默认 60 秒检查周期,可配置调整 |
🎯 监控目标与启动脚本
| 进程名称 | 检查条件 | 恢复动作 |
|---|---|---|
| rolo_simulator.py | 多实例 → kill -9 删除多余;缺失→重启 | nohup /home/tc/anaconda3/envs/openclaw/bin/python3 /home/tc/.openclaw/workspace/rolo_simulator.py & |
| ai_chat.py | 缺失 → 重启 | nohup /home/tc/anaconda3/envs/openclaw/bin/python3 /home/tc/.openclaw/workspace-monitor/script/ai_chat.py & |
| agent_collector.py | 缺失 → 重启 | chmod +x /home/tc/.openclaw/workspace-monitor/script/run_collector.sh && bash /home/tc/.openclaw/workspace-monitor/script/run_collector.sh |
🔌 标准调用流程(JSON Schema)
Input Parameters(输入参数)
json
{
"action": "check|start|stop|status", // 操作类型:检查/启动监控/停止监控/查看状态
"intervalSeconds": 60, // 检查间隔秒数(默认 60 秒)
"processes": [ // 需要监控的进程列表(可选,默认全部)
"rolo_simulator.py",
"ai_chat.py",
"agent_collector.py"
],
"autoRecovery": true, // 是否启用自动恢复(默认开启)
"logLevel": "info" // 日志级别:debug/info/warning/error
}
Output Response(输出响应)
json
{
"status": "success|failed|partial", // 执行状态
"timestamp": "2026-03-18T15:30:00+08:00",
"processesStatus": {
"rolo_simulator.py": {
"running": true,
"pid": [12345],
"instanceCount": 1,
"action": "none|killed_duplicates|started"
},
"ai_chat.py": {
"running": true,
"pid": [12346],
"instanceCount": 1,
"action": "none"
},
"agent_collector.py": {
"running": false,
"pid": [],
"instanceCount": 0,
"action": "started"
}
},
"nextCheckAt": "2026-03-18T15:31:00+08:00",
"monitoringActive": true,
"errors": []
}
📂 文件结构
agent-bootup/
├── SKILL.md # 本技能规范文档(含调用接口定义)
├── README.md # 快速使用指南 + 示例代码
├── config.json # 监控配置(进程列表/间隔/启动命令)
└── bootup_monitor.sh # 核心监控脚本
🔄 技能调用流程示例
场景 1:初始化监控(首次启用)
bash
# 执行检查并启动缺失进程
bash /home/tc/.openclaw/workspace/skills/agent-bootup/bootup_monitor.sh check
# 输出示例:
# [INFO] 2026-03-18 15:30:00 - Starting process health check...
# [CHECK] rolo_simulator.py: ✓ Running (PID: 12345)
# [CHECK] ai_chat.py: ✓ Running (PID: 12346)
# [CHECK] agent_collector.py: ✗ Not running → Starting...
# [START] agent_collector.sh started successfully
# [INFO] Next check scheduled at: 2026-03-18 15:31:00
场景 2:定时自动检测(每分钟)
bash
# 作为 cron job 或 systemd timer 运行
* * * * * bash /home/tc/.openclaw/workspace/skills/agent-bootup/bootup_monitor.sh check
场景 3:清理多余 rolo_simulator 实例
bash
# 检测到多个 rolo_simulator 进程
# [WARN] rolo_simulator.py: Found 3 instances (PIDs: 12345, 12347, 12349)
# [KILL] Terminating extra instances: 12347, 12349 (keeping 12345)
# [CHECK] rolo_simulator.py: ✓ Now running with single instance (PID: 12345)
⚙️ 配置说明
config.json 配置文件
json
{
"monitoring": {
"enabled": true,
"intervalSeconds": 60,
"autoRecovery": true,
"logLevel": "info",
"logfile": "/home/tc/.openclaw/workspace/skills/agent-bootup/bootup_monitor.log"
},
"processes": [
{
"name": "rolo_simulator.py",
"maxInstances": 1,
"killExtraInstances": true,
"startCommand": "nohup /home/tc/anaconda3/envs/openclaw/bin/python3 /home/tc/.openclaw/workspace/rolo_simulator.py &"
},
{
"name": "ai_chat.py",
"maxInstances": 1,
"killExtraInstances": false,
"startCommand": "nohup /home/tc/anaconda3/envs/openclaw/bin/python3 /home/tc/.openclaw/workspace-monitor/script/ai_chat.py &"
},
{
"name": "agent_collector.py",
"maxInstances": 1,
"killExtraInstances": false,
"startCommand": "chmod +x /home/tc/.openclaw/workspace-monitor/script/run_collector.sh && bash /home/tc/.openclaw/workspace-monitor/script/run_collector.sh"
}
],
"paths": {
"python3_env": "/home/tc/anaconda3/envs/openclaw/bin/python3",
"workspace": "/home/tc/.openclaw/workspace",
"workspace_monitor_script": "/home/tc/.openclaw/workspace-monitor/script"
}
}
⚠️ 安全注意事项
进程清理策略
| 场景 | 处理方式 | 安全风险 |
|---|---|---|
| rolo_simulator.py 多实例 | 保留 oldest PID,kill -9 其他 | ⚠️杀错进程影响机器人服务 |
| 进程缺失自动重启 | 执行 startCommand 恢复 | ✓无风险(nohup 后台运行) |
| 启动命令失败 | 记录日志并告警 | ✓仅记录不重试 |
异常处理机制
| 异常类型 | 触发条件 | 应对措施 |
|---|---|---|
| 进程不存在 | ps aux 未找到进程 | 执行 startCommand 启动 |
| 多实例异常 | rolo_simulator.py>1 个实例 | kill -9 多余 PID |
| 启动命令失败 | startCommand 返回非 0 状态码 | 记录错误日志,不重试 |
| 配置加载失败 | config.json JSON 解析错误 | 使用默认配置继续运行 |
日志管理
- 日志位置 :
/home/tc/.openclaw/workspace/skills/agent-bootup/bootup_monitor.log - 日志级别: debug / info / warning / error (可配置)
- 轮转策略: 每天自动切分,保留最近 7 天
- 告警输出: 检测到异常时输出到 stderr 便于监控系统捕获
🚀 部署步骤
Step 1:创建技能目录和文件
bash
mkdir -p /home/tc/.openclaw/workspace/skills/agent-bootup
cd /home/tc/.openclaw/workspace/skills/agent-bootup
Step 2:创建配置文件 (config.json)
json
{
"monitoring": {
"enabled": true,
"intervalSeconds": 60,
"autoRecovery": true
},
"processes": [...]
}
Step 3:创建监控脚本 (bootup_monitor.sh)
bash
chmod +x bootup_monitor.sh
Step 4:设置定时任务 (可选 - 系统级 cron)
bash
# 编辑 crontab
crontab -e
# 添加每分钟检查和自动恢复
* * * * * bash /home/tc/.openclaw/workspace/skills/agent-bootup/bootup_monitor.sh check >> /var/log/agent-bootup.log 2>&1
Step 5:验证监控功能
bash
# 手动执行一次检查
bash /home/tc/.openclaw/workspace/skills/agent-bootup/bootup_monitor.sh check
# 查看日志
tail -f /home/tc/.openclaw/workspace/skills/agent-bootup/bootup_monitor.log
调用说明
- 本技能设计为独立脚本运行,可通过 cron/systemd timer /OpenClaw heartbeat 触发
- 无需 ACP session,直接执行 shell 命令即可完成进程检查和恢复
- 与 rolo_simulator.py 协同:确保机器人模拟器服务始终在线
- 支持集成到 OpenClaw:可通过 exec 工具调用 bootup_monitor.sh check 实现定时巡检
与现有技能的协作关系
- rolo-audio-speaker:依赖 rolo_simulator.py (127.0.0.1:7777/speaker) 提供机器人语音服务
- rolo-camera-shooter:依赖 rolo_simulator.py (127.0.0.1:7777/camera) 提供视觉采集能力
- 本技能保障基础服务可用性,确保上述技能调用的后端服务始终在线
这个技能为 OpenClaw 消控系统提供进程级监控防护,确保核心业务连续性
openclaw自动生成README.md:
# Agent Bootup - 进程守护监测器
> **xxxxxx公司** | 消控系统自动化维护工具
## 📋 功能概述
`agent-bootup` 技能用于常态化维护本地服务器上的关键进程,确保以下三个核心服务持续运行:
- `rolo_simulator.py` - 机器人模拟器(仅限单实例)
- `ai_chat.py` - AI 聊天服务
- `agent_collector.py` - Agent 数据采集器
## ⚙️ 检测规则
### 1️⃣ rolo_simulator.py
- **检查**:每分钟扫描进程列表
- **策略**:
- ❌ **多个实例** → `kill -9 PID` 删除多余进程
- ✅ **单实例** → 保持不变
- ❌ **无进程** → 自动启动
- **启动命令**:
```bash
nohup /home/tc/anaconda3/envs/openclaw/bin/python /home/tc/.openclaw/workspace-monitor/script//home/tc/.openclaw/workspace/rolo_simulator.py &
2️⃣ ai_chat.py
- 检查:每分钟扫描进程列表
- 策略 :
✅ 有运行 → 保持不变
❌ 未运行 → 自动启动 - 启动命令:
bash
nohup /home/tc/anaconda3/envs/openclaw/bin/python /home/tc/.openclaw/workspace-monitor/script/ai_chat.py &
3️⃣ agent_collector.py
- 检查:每分钟扫描进程列表
- 策略 :
✅ 已运行 → 保持不变
❌ 未运行 → 自动启动 - 启动命令:
bash
chmod +x /home/tc/.openclaw/workspace-monitor/script/run_collector.sh && bash /home/tc/.openclaw/workspace-monitor/script/run_collector.sh
🚀 快速开始
方式一:手动运行(测试用)
bash
cd /home/tc/.openclaw/workspace/skills/agent-bootup/scripts
python3 process_health_monitor.py
方式二:作为 Skill 调用(推荐)
- ✅ 已自动复制到系统路径 :
~/.npm-global/lib/node_modules/openclaw/skills/agent-bootup/ - 通过天枢 Agent 触发该技能执行
方式三:Cron 定时任务(生产环境)
bash
# 添加到 crontab
echo "* * * * * cd /home/tc/.openclaw/workspace/skills/agent-bootup/scripts && python3 process_health_monitor.py >> /tmp/agent_bootup.log 2>&1" | crontab -
# 验证安装
crontab -l | grep agent_bootup
📁 文件结构
skills/agent-bootup/
├── SKILL.md # OpenClaw 技能元数据(名称、描述、使用场景)
├── README.md # 本文件,详细使用说明
├── .gitignore # Git 忽略配置
└── scripts/
└── process_health_monitor.py # 核心监测脚本
⚠️ 重要说明
🔴 OpenClaw 技能注册路径
OpenClaw 系统加载的技能位于:~/.npm-global/lib/node_modules/openclaw/skills/
- ✅ 已安装到系统目录 :
~/.npm-global/lib/node_modules/openclaw/skills/agent-bootup/ - 📝 工作区副本 :
~/.openclaw/workspace/skills/agent-bootup/
如果修改了技能文件,需要重新复制到系统路径:
bash
cp -r /home/tc/.openclaw/workspace/skills/agent-bootup ~/.npm-global/lib/node_modules/openclaw/skills/
🔍 日志输出示例
shell
[2026-03-18 14:30:00] ============================================================
[2026-03-18 14:30:00] Agent Bootup - Health Check Starting
[2026-03-18 14:30:00] ============================================================
[2026-03-18 14:30:00] ROLO: rolo_simulator.py has 1/1 instance(s)
[2026-03-18 14:30:00] ROLO: rolo_simulator.py healthy
[2026-03-18 14:30:00] CHAT: ai_chat.py has 0/1 instance(s)
[2026-03-18 14:30:00] CHAT: Starting ai_chat.py
[2026-03-18 14:30:00] Started ai_chat.py
[2026-03-18 14:30:00] COLLECT: agent_collector.py has 1/1 instance(s)
[2026-03-18 14:30:00] COLLECT: agent_collector.py healthy
[2026-03-18 14:30:00] ============================================================
🛡️ 安全说明
- ✅ 所有操作仅针对指定的三个 Python 脚本
- ⚠️
kill -9仅在发现rolo_simulator.py多实例时使用 - 🔒 启动命令中添加了
chmod +x,无需额外权限配置
🐛 故障排查
Q1: 进程自动重启失败?
A : 检查日志输出(/tmp/agent_bootup.log),确认 Python 环境和路径是否正确。
bash
# 查看日志
tail -f /tmp/agent_bootup.log
# 手动测试启动命令
/home/tc/anaconda3/envs/openclaw/bin/python /home/tc/.openclaw/workspace-monitor/script/ai_chat.py &
Q2: Cron 任务不执行?
A: 确认 cron 服务正在运行,路径使用绝对路径。
bash
# 检查 cron 状态
systemctl status cron
# 添加 PATH 环境到 crontab 头部
PATH=/usr/local/bin:/usr/bin:/home/tc/anaconda3/envs/openclaw/bin
Q3: OpenClaw 不识别 skill?
A: 确认技能已复制到系统路径。
bash
# 检查系统路径
ls ~/.npm-global/lib/node_modules/openclaw/skills/agent-bootup/
# 如果不存在,重新复制
cp -r /home/tc/.openclaw/workspace/skills/agent-bootup ~/.npm-global/lib/node_modules/openclaw/skills/
ℹ️ 维护频率 :每分钟一次(60s)
🔧 最后更新 :2026-03-18
🏢 归属单位:XXXXXXXXX | 消控系统部