Ubuntu 无头浏览器自动化
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md 安装 @user_f12a44b7/self-dev-ubuntu-headless-browser
技能介绍
这个方案解决什么问题
在 Ubuntu VPS 或云主机上跑浏览器自动化,最常见的不是「脚本不会写」,而是半夜机器休眠、进程崩溃没人拉起来、Chromium 因为缺少桌面环境和沙箱策略直接启动失败。OpenClaw 的浏览器工具本身能在无头模式下工作,但如果宿主机随手进入 suspend、gateway 被 OOM Kill 后没有守护、或 executablePath 指向的 Chromium 路径不存在,整个任务链会在无人值守时静默中断,第二天打开控制台只看到一堆超时。
本技能给出的是一份可长期挂机的配置方案,而不是临时试跑的脚本。
技能如何工作
核心由三部分组成:
- systemd 服务化:将
openclaw-gateway.service注册为用户级守护服务,开机自启,进程退出后自动拉起。文档同时提供了--install-daemon失败时的手动服务文件写法,避免 root 环境下安装器异常导致无从下手。 - 无头浏览器配置:在
~/.openclaw/openclaw.json顶层写入browser段,关键项为headless: true、noSandbox: true与executablePath。Chromium 可通过 Playwright 自带浏览器或系统包二选一安装,defaultProfile设为托管模式后无需挂扩展。 - 定时任务:固定时间用 Cron(注意
--tz与系统时区一致),周期性巡检用 HEARTBEAT,在HEARTBEAT.md中描述任务意图,由心跳机制触发。
验证方式很直接:调用浏览器工具打开一个页面,返回 opened: https://... 即链路打通。稳定性清单覆盖服务状态、journal 日志、浏览器状态、Cron 列表与 sleep.target 是否被禁用。
适用边界与注意点
这套方案面向单机单 gateway 的轻量场景,适合个人项目、定时巡检、夜间数据采集一类任务,不涉及集群调度、多机分片或浏览器指纹隔离。
几个容易踩的点:
noSandbox: true降低了 Chromium 的隔离性,仅应在可信内网或专用云主机上使用,不要暴露到公网可访问的服务上。- headless 截图出现空白时,先补装字体,常见原因是缺少
fonts-noto-cjk等 CJK 字体包。 - 内存吃紧的实例会被内核 OOM Kill,
dmesg | grep -i oom能确认,加 swap 是最直接的缓解手段。 systemd --user依赖用户登录会话,若部署在无人登录的云主机上,需配合loginctl enable-linger或直接采用手动系统级服务方案。
使用场景
- 在 Ubuntu 云主机上设置夜间定时任务,自动打开竞品网站抓取价格数据并保存
- 需要让浏览器自动化在周末持续运行,但服务器会休眠或进程崩溃
- 配置 HEARTBEAT 周期巡检内部系统状态页,发现异常及时通知
- 用 OpenClaw 定时登录第三方平台下载报表,免去每天手动操作
适合人员
- 用 OpenClaw 写自动化脚本的个人开发者,需要浏览器工具稳定运行
- 在云主机上长期挂机爬虫的运维工程师,遇到进程崩溃和休眠问题
- 用 AI 助手处理重复网页操作的独立开发者,想搭建定时任务
- 需要在 Ubuntu 服务器上配置无头浏览器的小团队技术负责人