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

十二、建议

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

相关推荐
互联网推荐官3 分钟前
上海软件定制开发与数字化建设:D-coding 全平台应用架构及实施指南
大数据·运维
ShineWinsu3 分钟前
对于Linux:进程间通信IPC(共享内存)的解析
linux·服务器·面试·笔试·进程·共享内存·ipc
代码中介商5 分钟前
Linux 进程间通信:共享内存与消息队列完全指南
linux·运维·服务器
计算机安禾7 分钟前
【Linux从入门到精通】第27篇:文本处理三剑客(上)——grep 正则表达式实战
linux·运维·正则表达式
码到成功>_<9 分钟前
Linux中grep命令使用说明
linux
minji...15 分钟前
Linux 网络套接字编程(六)TCP的通信是全双工的,自定义协议的定制,序列化和反序列化
linux·运维·服务器·网络·c++
小王C语言17 分钟前
【linux进程信号】————产生信号:signal自定义信号处理动作(自定义捕捉)、前后台进程、产生信号的方式(函数、软条件、硬件异常)....等等
运维·服务器·前端
晚风予卿云月26 分钟前
【linux】僵尸进程与孤儿进程
linux·运维·服务器
hhb_61828 分钟前
Tcl脚本自动化运维实操落地案例详解
运维·网络·自动化
故事还在继续吗30 分钟前
Linux cgroup 使用指南:从原理到实践
linux·运维·服务器