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

十二、建议

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

相关推荐
林姜泽樾2 小时前
Linux入门第十三章,chmod命令和权限控制信息
linux·运维·服务器·centos
acheding2 小时前
OpenClaw浏览器自动化实战:让AI拥有“眼睛“和“双手“
运维·人工智能·自动化
是小小张呀2 小时前
WSL Ubuntu修改主机名重启后失效解决方案
linux
一个有温度的技术博主3 小时前
Redis系列三:在linux上安装Redis
linux·数据库·redis
vanvivo3 小时前
Nginx中如何配置WebSocket代理?
运维·websocket·nginx
阿常呓语3 小时前
Linux命令 date详解
linux·运维·服务器·linux command
xlp666hub3 小时前
【Linux驱动实战】:最简单的内核模块
linux·面试
做萤石二次开发的哈哈3 小时前
萤石开放平台 × OpenClaw:打造AI摄像头技能生态,Ezviz Open Skills正式发布
ai·智能体·openclaw
虾..3 小时前
Linux HTTP服务器
linux·服务器·http