默认情况下,openclaw gateway 跑在前台,关掉终端 Gateway 就停了。在 Linux 服务器上正式使用,需要把它配成 systemd 服务,做到开机自启、后台运行、崩溃自动重启。

本文所有命令均来自 OpenClaw 官方文档

方式一:onboard 时直接安装(推荐)

如果你还没有初始化过 OpenClaw,在跑 onboard 时加上 --install-daemon 参数,引导完成后会自动把 Gateway 注册为 systemd 服务:

openclaw onboard --install-daemon

这是最简单的方式,引导会处理好服务注册、token 认证、开机自启的所有细节。

方式二:已有安装,事后补装 systemd 服务

如果之前已经跑过 onboard 但没有加 --install-daemon,可以单独安装后台服务:

openclaw gateway install

安装完启动服务:

openclaw gateway start

确认运行状态:

openclaw gateway status

服务管理常用命令

OpenClaw 对 systemd 操作做了封装,不需要直接用 systemctl

# 启动
openclaw gateway start

# 停止
openclaw gateway stop

# 重启
openclaw gateway restart

# 查看状态
openclaw gateway status

# 查看状态(深度探测,包含健康检查)
openclaw gateway status --deep

# 卸载 systemd 服务(停止并移除,不删配置)
openclaw gateway uninstall

如果需要直接用 systemctl 操作,服务名会包含你的用户名,格式类似 openclaw-<username>,具体名称可以通过 openclaw gateway status 输出里看到。

查看日志

用 OpenClaw 自带的命令查看实时日志:

openclaw gateway logs
openclaw gateway logs --follow

或者用 journalctl 直接查:

journalctl -u openclaw-$(whoami) -f

日志里遇到问题,先重点看第一条 ERRORFATAL 级别的行,后面的报错往往是连锁反应。

开机自启确认

openclaw gateway install 默认会启用开机自启。确认是否生效:

systemctl is-enabled openclaw-$(whoami)

输出 enabled 说明开机自启已开启。如果没有,手动启用:

systemctl enable openclaw-$(whoami)

环境变量配置

如果你需要自定义配置文件路径或状态目录,可以通过环境变量控制:

环境变量 作用
OPENCLAW_HOME 设置内部路径解析的根目录
OPENCLAW_STATE_DIR 覆盖状态目录路径(默认 ~/.openclaw
OPENCLAW_CONFIG_PATH 覆盖配置文件路径(默认 ~/.openclaw/openclaw.json

把环境变量加入 systemd 服务有两种方式:

方式一:写入 ~/.openclaw/.env 文件,Gateway 启动时会自动读取:

echo 'OPENCLAW_STATE_DIR=/data/openclaw' >> ~/.openclaw/.env

方式二:在 ~/.openclaw/openclaw.jsonenv 段直接配置内联环境变量,Gateway 会在启动时注入。

配置文件热加载

Gateway 服务在运行期间会自动监听 ~/.openclaw/openclaw.json 的文件变化,大多数设置改完之后不需要重启服务就会生效。

以下情况才需要手动重启:

  • 修改了 gateway.mode(本地 / 远程模式切换)
  • 修改了 gateway.remote 相关配置
  • 修改了需要重新建立连接的渠道配置
openclaw gateway restart

常见问题排查

服务起不来

先跑诊断工具:

openclaw doctor
openclaw doctor --fix

openclaw doctor 能检测配置格式错误、遗留文件、端口冲突等常见问题,并在加 --fix 时尝试自动修复。

端口 18789 被占用

Gateway 默认监听 18789 端口。查看是哪个进程占用:

lsof -i :18789

如果是上一个 Gateway 实例没有正常退出:

openclaw gateway stop
openclaw gateway start

如果需要换端口,在配置文件里修改或启动时指定:

openclaw gateway --port 18790

服务启动后 openclaw doctor 报 token 问题

安装后台服务时,Gateway 会自动生成认证 token,本地客户端也需要用这个 token 连接。如果 token 配置出错,openclaw doctor 会给出具体提示,按提示操作即可。官方文档建议:如果 token 通过 SecretRef 管理,daemon 安装时会验证但不会把解析后的 token 明文写入服务环境变量,这是正常行为。

服务运行正常但控制面板打不开

服务器环境没有浏览器,用 SSH 端口转发访问控制面板:

ssh -L 18789:127.0.0.1:18789 user@your-server-ip

然后在本机浏览器访问 http://127.0.0.1:18789

把旧的 pm2 托管迁移到 systemd

如果你之前用 pm2 运行 Gateway,迁移步骤:

# 停止并删除 pm2 里的 openclaw 进程
pm2 delete openclaw

# 安装 systemd 服务
openclaw gateway install
openclaw gateway start

一张表总结

操作 命令
安装 systemd 服务 openclaw gateway install
启动 openclaw gateway start
停止 openclaw gateway stop
重启 openclaw gateway restart
查看状态 openclaw gateway status
查看实时日志 openclaw gateway logs --follow
卸载服务 openclaw gateway uninstall
配置检查修复 openclaw doctor --fix