OpenClaw 7×24 小时长稳运行方案 — 进程守护、异常重启、断连重连、断点续跑、资源回收、日志监控。确保 OpenClaw 零崩溃、零断连、零漏执行。无人值守必备。
OpenClaw 7×24 长稳运行方案
功能概述
OpenClaw 7×24 长稳运行方案是一项面向实际任务的技能,主要用于让 OpenClaw 零崩溃、零断连、零漏执行;常见崩溃场景;
核心要点
- 🔴 半夜崩了;
- 凌晨 Gateway 挂掉,错过重要消息;
- 🔴 内存爆了;
使用与执行
运行一周后内存泄漏,被 OOM Kill;🔴 网络断了;Wi-Fi/运营商切换,TCP 连接断开;🔴 任务丢了;执行到一半崩溃,重启从头开始;一、进程守护:让 OpenClaw 永远在线;推荐方案对比;崩溃后自启。
结果检查与注意事项
它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。该技能适合用于一次性任务,也可以接入自动化工作流,与其他技能或上层代理配合完成更完整的业务链路;在组合使用时,应明确每一步的输入输出关系,并避免不同步骤之间出现参数冲突。
OpenClaw 7×24 长稳运行方案
让 OpenClaw 零崩溃、零断连、零漏执行。
常见崩溃场景
| 场景 | 危害 |
|---|---|
| 🔴 半夜崩了 | 凌晨 Gateway 挂掉,错过重要消息 |
| 🔴 内存爆了 | 运行一周后内存泄漏,被 OOM Kill |
| 🔴 网络断了 | Wi-Fi/运营商切换,TCP 连接断开 |
| 🔴 任务丢了 | 执行到一半崩溃,重启从头开始 |
一、进程守护:让 OpenClaw 永远在线
推荐方案对比
| 方案 | 崩溃后自启 | 开机自启 | 日志管理 | 资源限制 |
|---|---|---|---|---|
| nohup | ❌ | ❌ | ❌ 需手动 | ❌ |
| screen | ❌ | ❌ | ❌ | ❌ |
| systemd | ✅ | ✅ | ✅ 内置 | ✅ cgroups |
| PM2 | ✅ | ✅ | ✅ | ✅ |
✅ 用 systemd(Linux 推荐)或 PM2,不要用 nohup/screen。
方案一:systemd(推荐)
创建服务文件 /etc/systemd/system/openclaw.service:
[Unit] Description=OpenClaw Gateway Service Documentation=https://docs.openclaw.ai After=network.target network-online.target Wants=network-online.target [Service] Type=simple User=openclaw Group=openclaw WorkingDirectory=/home/openclaw/.openclaw ExecStart=/usr/local/bin/openclaw gateway start --no-daemon Restart=always RestartSec=10 LimitNOFILE=65535 MemoryMax=2G TasksMax=4096 Environment="NODE_ENV=production" EnvironmentFile=/home/openclaw/.openclaw/.env StandardOutput=journal StandardError=journal SyslogIdentifier=openclaw [Install] WantedBy=multi-user.target
关键参数解释:
Restart=always— 任何异常退出都自动重启RestartSec=10— 崩溃后等 10 秒再重启,避免频繁重启MemoryMax=2G— 内存超限后自动重启,防止 OOM
启用服务:
sudo systemctl daemon-reload sudo systemctl enable openclaw sudo systemctl start openclaw sudo systemctl status openclaw journalctl -u openclaw -f
方案二:PM2
npm install -g pm2 pm2 start "openclaw gateway start --no-daemon" --name openclaw pm2 save pm2 startup
PM2 配置 ecosystem.config.js(见 scripts/ 目录):
module.exports = {
apps: [{
name: 'openclaw-gateway',
script: 'openclaw',
args: 'gateway start --no-daemon',
max_memory_restart: '1G', // 内存超 1G 自动重启
autorestart: true,
max_restarts: 10,
restart_delay: 10000,
node_args: '--expose-gc --max-old-space-size=2048',
}]
}
二、异常自动重启:崩溃后的自我修复
健康检查脚本
每 5 分钟检查一次 Gateway 是否存活,见 scripts/healthcheck.sh:
# crontab -e */5 * * * * /home/openclaw/scripts/healthcheck.sh
脚本会自动:
- 检查 Gateway 进程是否存在
- 检查健康端点是否响应
- 两者任一失败 → 自动重启
- 记录日志到
/var/log/openclaw/healthcheck.log
监控告警(可选)
Uptime Kuma(Docker 部署):
# docker-compose.yml
services:
uptime-kuma:
image: louislam/uptime-kuma:1
ports:
- "3001:3001"
restart: always
监控 http://localhost:9527/health,异常时推送通知到飞书/Telegram/Discord。
三、断连自动重连:网络抖动不是事
OpenClaw 渠道重连配置
# 飞书配置
channels:
feishu:
reconnect:
enabled: true
maxRetries: 10
initialDelay: 1000 # 首次重连等待 1s
maxDelay: 60000 # 最大等待 60s
backoffMultiplier: 2 # 指数退避
# Discord 配置
channels:
discord:
gateway:
heartbeatInterval: 41250
reconnect:
enabled: true
maxRetries: -1 # 无限重试
LLM API 重试逻辑
async function callLLMWithRetry(prompt, maxRetries = 3) {
for (let i = 0; i < maxRetries; i++) {
try {
return await openai.chat.completions.create({
model: 'gpt-4',
messages: [{ role: 'user', content: prompt }]
});
} catch (error) {
if (error.status === 429) {
await sleep((error.headers?.['retry-after'] || 60) * 1000);
} else if (error.code === 'ECONNRESET' || error.code === 'ETIMEDOUT') {
await sleep(Math.pow(2, i) * 1000); // 指数退避
} else {
throw error;
}
}
}
throw new Error('Max retries exceeded');
}
四、任务断点续跑:崩溃后从哪里跌倒从哪里爬起
核心思路
任务开始 → 记录进度到文件/数据库
↓
任务执行中 → 定期更新进度
↓
崩溃重启 → 读取进度,从断点继续
进度持久化(文件方式)
const PROGRESS_FILE = '/home/openclaw/data/task_progress.json';
function saveProgress(taskId, progress) {
const data = JSON.parse(fs.readFileSync(PROGRESS_FILE, 'utf8') || '{}');
data[taskId] = { ...progress, updatedAt: Date.now() };
fs.writeFileSync(PROGRESS_FILE, JSON.stringify(data, null, 2));
}
function loadProgress(taskId) {
const data = JSON.parse(fs.readFileSync(PROGRESS_FILE, 'utf8') || '{}');
return data[taskId];
}
function clearProgress(taskId) {
const data = JSON.parse(fs.readFileSync(PROGRESS_FILE, 'utf8') || '{}');
delete data[taskId];
fs.writeFileSync(PROGRESS_FILE, JSON.stringify(data));
}
心跳状态持久化(正确做法)
// ❌ 错误:依赖内存状态
let lastCheckTime = 0;
if (Date.now() - lastCheckTime > 3600000) { /* ... */ }
// ✅ 正确:持久化到文件
const stateFile = '/home/openclaw/data/heartbeat-state.json';
const state = JSON.parse(fs.readFileSync(stateFile, 'utf8'));
if (Date.now() - state.lastCheck > 3600000) {
state.lastCheck = Date.now();
fs.writeFileSync(stateFile, JSON.stringify(state));
}
Redis 任务队列(关键任务)
await queue.add('sendNotification', {
channel: 'feishu', userId: 'ou_xxx', message: 'Task done!'
}, {
attempts: 3,
backoff: { type: 'exponential', delay: 2000 }
});
五、资源溢出自动回收:内存不会爆
PM2 内存监控
// ecosystem.config.js
{
max_memory_restart: '1G', // 超 1G 自动重启
}
Node.js 内存监控脚本
const MB = 1024 * 1024;
setInterval(() => {
const usage = process.memoryUsage();
const heapUsed = usage.heapUsed / MB;
console.log(`Memory: ${heapUsed.toFixed(2)}MB`);
if (heapUsed > 1800) {
console.error('Memory limit exceeded, exiting...');
process.exit(1); // 让 systemd/PM2 重启
}
}, 60000);
启动时开启 GC:node --expose-gc your-app.js
文件句柄限制
# 永久提高(/etc/security/limits.conf) * soft nofile 65535 * hard nofile 65535 # systemd LimitNOFILE=65535
定期清理
# cleanup.sh - 清理 7 天前日志 find /var/log/openclaw -name "*.log" -mtime +7 -delete find /tmp/openclaw -type f -mtime +1 -delete # crontab 0 3 * * * /home/openclaw/scripts/cleanup.sh
六、日志与监控
日志轮转(logrotate)
# /etc/logrotate.d/openclaw
/var/log/openclaw/*.log {
daily
rotate 7
compress
delaycompress
missingok
notifempty
create 0640 openclaw openclaw
}
检查清单
| 检查项 | 命令 | 预期结果 |
|---|---|---|
| 服务状态 | systemctl status openclaw |
active (running) |
| 开机自启 | systemctl is-enabled openclaw |
enabled |
| 日志正常 | journalctl -u openclaw -n 50 |
无 ERROR |
| 内存使用 | free -h |
有余量 |
| 文件句柄 | ulimit -n |
≥ 65535 |
| 健康检查 | curl localhost:9527/health |
200 OK |
| 定时任务 | crontab -l |
有 healthcheck |
核心原则
没有 100% 稳定的系统,只有 100% 可恢复的系统。
| 保障层 | 工具 |
|---|---|
| 进程守护 | systemd / PM2 |
| 异常重启 | healthcheck.sh + crontab |
| 断连重连 | 渠道内置重连 + 指数退避 |
| 断点续跑 | 进度持久化到文件 |
| 资源回收 | 内存监控 + 自动重启 |
| 日志追溯 | logrotate + journalctl |
脚本目录
scripts/healthcheck.sh— 健康检查 + 自动重启scripts/cleanup.sh— 日志清理scripts/network_monitor.sh— 网络监控scripts/ecosystem.config.js— PM2 配置references/task-resume.md— 断点续跑详细文档
热门AI工具
相关专题
AionClaw专题整理AI智能体与电脑自动化相关功能使用教程,涵盖安装部署、AI任务执行、Skills技能、文件处理、浏览器控制、电脑操作、持久记忆、聊天工具连接以及办公、编程和内容创作等功能,帮助用户快速掌握AionClaw的实际使用方法。
0
2026.09.20
PHP中文网特设OpenClaw免费大模型专区,提供详尽调用指南。涵盖免费API申请、模型配置及本地部署教程,助您零成本畅享AI智能体验。无论是新手入门还是进阶应用,这里都有实用干货,轻松跨越创作门槛,开启高效智能办公新方式。
79
2026.06.29
本专题专为零基础用户设计,带你从环境搭建到实战应用,系统掌握开源AI Agent OpenClaw。内容涵盖Node.js/Docker安装、API配置、Skills技能扩展及多平台集成,通过整理文件、自动化办公等真实案例,助你快速上手。无论你是想提升效率的职场人还是技术爱好者,都能在此找到从入门到精通的完整路径,打造专属的本地化AI助手。
302
2026.05.06
《OpenClawAI硬件指南最新版》合集聚焦AI硬件入门与进阶,从核心组件解析到实战搭建,系统讲解算力配置、设备选型与优化方案。内容通俗易懂,适合开发者与科技爱好者快速掌握AI硬件要点,构建高效稳定的智能计算环境。
308
2026.03.20
围绕龙虾OpenClawAI使用中的安全风险,本合集系统梳理常见漏洞与隐患,提供实用防护方法与最新安全指南,帮助用户在稳定运行的同时规避风险,提升整体使用安全性与体验。
89
2026.03.20
OpenClawAI Skills 是 OpenClaw 智能体的核心功能模块,用于定义和管理 AI 可执行的具体能力,如查询天气、发送消息、操作文件等。通过技能系统,用户可灵活扩展智能体功能,实现高度定制化的自动化任务。
338
2026.03.20
《OpenClawAI初学者教程:如何使用和设置》是一套面向新手的入门指南,涵盖环境搭建、基础配置、模型加载及简单推理操作。通过本教程,你将快速掌握OpenClawAI的核心功能,轻松开启AI开发之旅。
61
2026.03.19
本合集涵盖2026最新版OpenClaw(小龙虾)本地部署全流程,适用于Windows系统,包含环境配置、模型接入、Web界面启动及飞书/Telegram/QQ等多平台对接。无论你是小白还是开发者,10分钟内即可完成安装,快速体验AI智能体“长手干活”的强大能力!
101
2026.03.19
《OpenClaw如何卸载?OpenClawAI小龙虾安全卸载最新指南》为您提供详尽、安全的卸载步骤,帮助用户彻底移除OpenClaw及其相关组件。本指南针对Windows与macOS系统分别说明操作流程,涵盖停止后台进程、清除配置文件、删除残留数据等关键环节,确保无痕卸载,避免系统冲突或隐私泄露。无论您是因更换工具、解决兼容问题,还是出于安全考虑,本文都将助您高效、安心地完成卸载操作。请务必按照最新版本指引执行,以保障设备稳定与数据安
60
2026.03.19
热门下载
相关下载
精品课程
共1课时 | 172人学习
共0课时 | 0人学习
共1课时 | 224人学习
最新文章