首页 > 解决方案 > Puppeteer headful 在本地机器上通过 cron 运行时无法启动浏览器,显示“无法打开 X 显示”

问题描述

我有这个 cron 工作:

* * * * * /path/to/node /path/to/script.js >> /path/to/log.log 2>&1

它正在记录以下堆栈跟踪:

Error: Failed to launch the browser process!
[6630:6630:0505/185507.905416:ERROR:browser_main_loop.cc(1485)] Unable to open X display.


TROUBLESHOOTING: https://github.com/puppeteer/puppeteer/blob/master/docs/troubleshooting.md

    at onClose (/home/vaibhav/projects/myproject/node_modules/puppeteer/lib/Launcher.js:615:20)
    at ChildProcess.<anonymous> (/home/vaibhav/projects/myproject/node_modules/puppeteer/lib/Launcher.js:606:67)
    at ChildProcess.emit (events.js:215:7)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:272:12)
script.js

看起来这可能是因为 cron 需要export DISPLAY=:0运行 GUI 应用程序(如此建议),但添加它对堆栈跟踪没有影响。

标签: cronpuppeteerchromium

解决方案


你可以试试看xvfb-run --server-args='-screen 0 1024x768x24' /path/to/node /path/to/script.js是否有效。

注意:您可能需要npm install xvfb.


推荐阅读