SSH 注销后节点离线(Linux)
在 Linux 上,openclaw node install 会创建一个用户级 systemd 服务。
当最后一个登录会话结束时,systemd --user 实例也会被终止,因此节点服务会在你注销的瞬间停止——即使在你连接期间它看起来仍然运行正常
(enabled + running)。
检查 lingering 状态:
Linger=no,请启用它(可能需要 sudo 权限):
openclaw node install 会打印一条包含此恢复命令的警告。不要让同一个节点同时使用用户级服务和系统级服务。用于防止两个管理器运行同名单元的重复作用域保护机制,适用于网关单元
(同一端口上的两个监管进程会互相发送 SIGTERM,从而陷入重启循环);对于节点服务,安装程序不会启用此保护,因此另一个作用域中残留的单元可能会使节点处于不明确的状态。切换前请彻底移除其中一个。
命令阶梯
- 节点已连接并为
node角色完成配对。 nodes describe包含你正在调用的能力。- 执行审批显示预期的模式/允许列表。
前台要求
canvas.*、camera.* 和 screen.* 在 iOS/Android 节点上仅限前台使用。
快速检查和修复:
NODE_BACKGROUND_UNAVAILABLE,请将节点应用切换到前台后重试。
权限矩阵
配对和审批
有三个相互独立的门控决定一个节点命令是否成功:- 设备配对:该节点能否连接到网关?
- 网关节点命令策略:RPC 命令 ID 是否被
gateway.nodes.commands.allow/gateway.nodes.commands.deny以及平台默认值允许? - 执行审批:该节点能否在本地运行特定的 shell 命令?
system.run,节点特定的策略位于该节点的执行审批文件中(openclaw approvals get --node ...),而不是在网关配对记录中。
快速检查:
- 缺少配对:先为该节点批准设备。
nodes describe缺少某个命令:检查网关节点命令策略,以及该节点在连接时是否实际上通告了该命令。- 配对正常但
system.run失败:修复该节点上的执行审批/允许列表。
host=node 运行,网关还会将执行绑定到预先构建的规范化 systemRunPlan。如果调用方在已批准的运行转发之前,随后修改了命令、cwd 或会话元数据,网关会将其视为审批不匹配并拒绝,而不是信任被编辑过的载荷。
常见节点错误代码
快速恢复循环
- 重新批准设备配对。
- 重新打开节点应用程序(前台)。
- 重新授予操作系统权限。
- 重新创建/调整执行审批策略。
computer 工具,并且在授予 Screen Recording 权限后 screen.snapshot 能够成功。gateway.nodes.commands.deny 条目始终会覆盖平台默认值或 gateway.nodes.commands.allow。