给openclaw安装skill,修改配置,添加模型等等,经常需要重启openclaw gateway,甚至于这虾会自行判断而直接重启gateway生效,消息断开,我还在干等虾的操作汇报...
于是我让虾配置重启gateway成功后,通过飞书接口给我说一声。
折腾了好一会,失败好几次,最后只能让虾梳理配置思路,指导虾检查哪里不行,更换通知方式等,终于实现。
有需要也可以让虾配置gateway重启发出通知,遇到问题将下面的流程丢给虾参考:
📌 环境版本
OpenClaw:2026.3.13(详见 openclaw -v)
Node.js:v22
系统:Ubuntu 22.04 / Linux 5.15
通知渠道:飞书
🔹 第一步:用官方命令配置systemd
OpenClaw自带了systemd安装脚本,一行命令搞定:
openclaw gateway install
自动检测Linux系统、生成service文件、设置开机自启。
如果之前手动配过,会提示覆盖,建议先看一下现有配置:
cat /etc/systemd/system/openclaw-gateway.service
🔹 第二步:开启内部Hook事件
OpenClaw的Hook机制可以监听gateway:startup事件,但默认是关闭的。打开openclaw.json,加上这段:
{ "hooks": { "internal": { "enabled": true } } }
保存后重启gateway:
systemctl --user restart openclaw-gateway
🔹 第三步:创建Hook文件
mkdir -p ~/.openclaw/hooks/gateway-notify
新建两个文件:
HOOK.md
name: gateway-notify events: - gateway:startup
handler.js
const { sendFeishuMessage } = require('./feishu-api.js')
module.exports = async function handler(event) {
const now = new Date().toLocaleString('zh-CN', { timeZone: 'Asia/Shanghai' })
await sendFeishuMessage(`🤖 OpenClaw Gateway 已重启\n时间:${now}`)
}
⚠️ 注意:module.exports 必须是默认导出,不能用 { handler } 命名导出,否则运行时会报错。
🔹 第四步:给systemd注入飞书凭证
Gateway运行在systemd下,handler里调用飞书API需要FEISHU_APP_ID和FEISHU_APP_SECRET。用systemctl edit直接改:
sudo systemctl edit openclaw-gateway
在编辑器里填入:
[Service] Environment="FEISHU_APP_ID=cli_xxxxxx" Environment="FEISHU_APP_SECRET=xxxxxxxx"
保存后重载生效:
sudo systemctl daemon-reload sudo systemctl restart openclaw-gateway
🔹 第五步:测试
sudo systemctl restart openclaw-gateway
看看飞书有没有收到消息。收不到就查日志:
journalctl -u openclaw-gateway -f
🔍 常见问题
• 没收到 — 确认hooks.internal.enabled已开启
• hook报错 — 检查handler.js导出方式是否正确
• token无效 — 确认systemd里的APP_ID/SECRET和飞书应用配置一致

文章评论