收起左侧

我把 OpenClaw 跑在 NAS 上后,终于搞懂了 “gateway” 和 “systemd”

0
回复
253
查看
[ 复制链接 ]

15

主题

31

回帖

0

牛值

初出茅庐

🧠 一句话先给结论:
OpenClaw 不是一个“跑在终端里的程序”,而是一个应该被 systemd 托管的长期服务。
如果你在 NAS 上用它,这个认知非常重要。

📋 OpenClaw 常用命令速查

⚠️ 后面你遇到的 90% 问题,都能在这里快速定位。

🔧 初始化 & 环境修复(只做一次)

# 如果 openclaw 提示 command not found
echo 'export PATH="$(npm config get prefix)/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc

# 进入官方初始化流程(唯一正确入口)
openclaw onboard

📌 说明

  • openclaw onboard 会生成配置、systemd 服务、基础目录
  • 不要手写 config,不要跳过这一步

🚀 Gateway(推荐:NAS 7×24 运行)

# 启动后台服务
systemctl --user start openclaw-gateway

# 设置开机自启
systemctl --user enable openclaw-gateway

# 查看运行状态
systemctl --user status openclaw-gateway

这是 NAS 上的正确使用方式

🧪 临时调试 / 实时日志(非长期)

# 仅用于调试(使用前请先 stop systemd 服务)
openclaw gateway run

⚠️ 不要和 systemd 同时用
调试完就关

📜 日志查看(最常用)

# 查看最近 100 行日志
journalctl --user -u openclaw-gateway -n 100

# 实时跟踪日志
journalctl --user -u openclaw-gateway -f

♻️ 重启 / 停止(改配置必用)

# 停止服务
systemctl --user stop openclaw-gateway

# 重启服务
systemctl --user restart openclaw-gateway

📌 一句话原则
👉 “长期运行用 systemd,看问题再 gateway run”

🧠 我一开始也被 Ctrl+C 骗了

刚开始在 NAS 上跑 OpenClaw 时,我一直以为:

  • Ctrl + C = 关闭服务
  • 关掉 SSH = 程序结束
  • gateway run = 正确启动方式

直到有一天我发现:

Ctrl+C 怎么关不掉?

终端关了,OpenClaw 还在?

端口被占用,但我明明没跑?

我的Token怎么没了

答案只有一个:
👉 systemd 已经接管了它。


🔍 OpenClaw 的两种运行模式(你必须分清)

模式一:systemd(✅ 推荐,生产环境)

systemctl --user start openclaw-gateway

特点:

  • NAS 开机自动启动
  • SSH 断开不影响
  • 崩溃自动拉起
  • 日志由 journald 管理
  • 适合 7×24 运行

模式二:gateway run(🧪 临时调试)

openclaw gateway run

特点:

  • 前台运行

  • Ctrl+C 立即退出

  • 关终端 = 服务结束

  • 适合:

    • 看实时日志
    • 怀疑 gateway 卡住
    • 刚改完配置验证一次

📊 systemd vs gateway run

一句话记忆版:

  • systemd = 托管型服务
  • gateway run = 手动调试工具

👉 不要同时用


❓ 为什么会遇到那些“怪现象”

1️⃣ Ctrl+C 关不掉 OpenClaw

这是正常行为

Ctrl+C 只能关掉你当前终端里的进程,
关不掉 systemd 的后台服务。

正确做法:

systemctl --user stop openclaw-gateway

2️⃣ gateway run 没输出 / 报端口占用

原因:

  • systemd 已经在后台跑着

先检查:

systemctl --user status openclaw-gateway

3️⃣ 日志怎么看不到?

如果你看到类似提示:

No journal files were opened due to insufficient permissions

说明你当时:

  • 服务没启动
  • 或用户权限没对上

一旦服务正常启动,下面命令就能看到日志:

journalctl --user -u openclaw-gateway -n 100

🧭 一页 NAS 运维速查卡

💡 收藏这一段,日常维护只看这里

场景 正确操作
NAS 开机后 systemctl --user status openclaw-gateway
改了配置 systemctl --user restart openclaw-gateway
想看日志 journalctl --user -u openclaw-gateway -f
端口被占用 检查是否 systemd 已启动
调试问题 stop systemd →gateway run
长期运行 永远用 systemd

✅ 最后一段,给还在纠结的人

如果你只记住一句话:

OpenClaw 在 NAS 上,是一个“服务”,不是一个“命令”。

那你之后就很难再踩坑了。

如有修改将更新在文章底部留言,觉得有用可以点赞+转发+推荐,点点关注,你的支持是我更新的最大动力❤。
收藏
送赞
分享
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则