OpenClaw 在 Ubuntu 22.04.5 LTS 上的命令版操作手册

说明:本手册按"安装、检查、常见问题修复"的顺序整理,优先覆盖这次实际用到的可复用命令。执行前请确认当前用户具备 root 或 sudo 权限。

一、基础环境检查

  1. 查看系统版本

lsb_release -a

uname -a

  1. 检查 Node / npm / OpenClaw 命令位置

which node

which npm

which openclaw

node -v

npm -v

预期:尽量统一到系统路径,例如 /usr/bin/node、/usr/bin/npm、/usr/bin/openclaw。

二、安装或确认系统级 Node.js

如果当前还在混用 nvm,可优先整理为系统级 Node。以下命令先用于确认:

which node

readlink -f $(which node)

which npm

readlink -f $(which npm)

如果确认系统已具备可用 Node,则可直接进入 OpenClaw 检查;若未安装,请按你的实际源安装系统级 Node。安装完成后再次确认 which node / which npm。

三、OpenClaw 基础检查

  1. 查看 Gateway 状态

openclaw gateway status

  1. 查看整体状态

openclaw status

  1. 跟踪日志

tail -n 100 /tmp/openclaw/openclaw-$(date +%F).log

四、systemd 管理 Gateway 的常用命令

如果已经采用 systemd 托管 Gateway,常用命令如下:

openclaw gateway status

openclaw gateway start

openclaw gateway stop

openclaw gateway restart

如果你当前明确采用 root + 系统级服务,也可以直接看系统服务:

systemctl status openclaw-gateway --no-pager -l

systemctl daemon-reload

五、修复 systemd user scope 与 system scope 混淆

现象:CLI 容易误判到 systemctl --user,或者机器上同时存在用户态和系统级 unit。

  1. 先检查两边是否都存在 unit

ls -l ~/.config/systemd/user/openclaw-gateway.service

ls -l /etc/systemd/system/openclaw-gateway.service

  1. 如果你决定只保留系统级 unit,可先备份用户态残留 unit

mv ~/.config/systemd/user/openclaw-gateway.service ~/.config/systemd/user/openclaw-gateway.service.bak

  1. 然后重新检查 Gateway 状态

openclaw gateway status

systemctl status openclaw-gateway --no-pager -l

注意:如果当前会话本身依赖 OpenClaw 在线,不建议在关键对话中贸然重启 gateway,避免把自己会话也重启掉。

六、修复控制台显示异常但服务实际上正常的问题

现象:页面或状态里出现 missing scope: operator.read。

这种情况下先确认服务本身是否正常,不要只看 UI。

openclaw gateway status

openclaw status

ss -ltnp | grep 18789

tail -n 100 /tmp/openclaw/openclaw-$(date +%F).log | grep -n "operator.read"

如果 RPC probe 正常、端口也在监听,则优先判断为权限视角问题,而不是 Gateway 已宕机。

七、修复 sandbox 开启后因未安装 Docker 导致 agent 无法回复

现象:日志报 Sandbox mode requires Docker, but the docker command was not found in PATH。

  1. 先确认 Docker 是否安装

docker --version

which docker

  1. 如果没安装 Docker,而你只是想先恢复可用性,建议先把 sandbox 关闭

python3 - <<'PY2'

import json

p = "/home/node/.openclaw/openclaw.json"

with open(p, "r", encoding="utf-8") as f:

data = json.load(f)

data.setdefault("agents", {}).setdefault("defaults", {}).setdefault("sandbox", {})"mode" = "off"

with open(p, "w", encoding="utf-8") as f:

json.dump(data, f, ensure_ascii=False, indent=2)

f.write("\n")

print("updated:", p)

PY2

  1. 修改后重新检查

openclaw gateway status

tail -n 80 /tmp/openclaw/openclaw-$(date +%F).log

八、修复 QQ allowlist 配置导致私聊被拦截

现象:dmPolicy=allowlist,但 allowFrom 为空,doctor 会提示 all DMs will be blocked。

  1. 先检查当前配置

python3 - <<'PY2'

import json

p = "/home/node/.openclaw/openclaw.json"

with open(p, "r", encoding="utf-8") as f:

data = json.load(f)

qq = data.get("channels", {}).get("qqbot", {})

print(json.dumps({"dmPolicy": qq.get("dmPolicy"), "allowFrom": qq.get("allowFrom")}, ensure_ascii=False, indent=2))

PY2

  1. 把自己的 QQ sender ID 加入白名单(下面示例把 80D430D088174E8157D1309218917F86 加入)

python3 - <<'PY2'

import json

p = "/home/node/.openclaw/openclaw.json"

uid = "80D430D088174E8157D1309218917F86"

with open(p, "r", encoding="utf-8") as f:

data = json.load(f)

qq = data.setdefault("channels", {}).setdefault("qqbot", {})

qq"dmPolicy" = "allowlist"

allow = qq.setdefault("allowFrom", \[\])

if uid not in allow:

allow.append(uid)

with open(p, "w", encoding="utf-8") as f:

json.dump(data, f, ensure_ascii=False, indent=2)

f.write("\n")

print("updated:", p)

PY2

  1. 再检查

openclaw gateway status

openclaw status

九、会话过长导致回复易串线时的处理建议

  1. 先看当前会话状态

openclaw status

  1. 如果 direct 会话 token 已经很高,最稳的办法通常是新开会话验证,而不是在超长旧会话里硬修。

十、MySQL 环境异常时的修复命令(部署主机通用)

如果在同一台 Ubuntu 主机上遇到 apt / dpkg 被 MySQL 卡住,可按下面顺序检查。

  1. 看服务状态

systemctl status mysql --no-pager -l

mysqladmin ping

  1. 查看是否有包状态未完成

dpkg --audit

apt-get -f install

  1. 如果 root PATH 太瘦,先补全再重试

export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

dpkg --configure -a

apt-get -f install

dpkg --audit

  1. 如果日志仍然报 ALTER USER failed for root@localhost,则要检查升级临时实例里的 mysql.user,确认是否只有 root@% 而缺少 root@localhost。

十一、日常最小巡检命令

which node && which npm && which openclaw

openclaw gateway status

openclaw status

tail -n 100 /tmp/openclaw/openclaw-$(date +%F).log

十二、建议

建议把这份命令版和前一份过程记录版一起保存:过程记录适合回顾原因,命令版适合下次直接照着操作。

相关推荐
大树883 小时前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠3 小时前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质4 小时前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
bush44 小时前
嵌入式linux学习记录十四、术语
linux·嵌入式
载数而行5204 小时前
Linux 11 动态监控指令top
linux
Inhand陈工5 小时前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
酣大智5 小时前
ARP代理--工作原理
运维·网络·arp·arp代理
不会C语言的男孩5 小时前
Linux 系统编程 · 第 8 章:进程基础
linux·c语言
shushangyun_5 小时前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化
古城小栈5 小时前
Unix 与 Linux 异同小叙
linux·服务器·unix