Agent Skills
返回列表
💻

Ubuntu 无头浏览器自动化

开发编程 更新于 2026.08.30

将以下提示词粘贴到你的 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 服务器上配置无头浏览器的小团队技术负责人