木偶戏不与cronjobs一起运行

时间:2019-07-25 22:32:43

标签: node.js puppeteer headless-browser

我想将node.js进程作为cron作业运行,但是进程运行不正常。

我的javascript代码只是文档(https://pptr.dev/)中提供的第一个木偶示例:

const puppeteer = require('puppeteer'),
      process   = require('process')
;

(async () => {

    console.log( 'process owner: ' + process.env.USER );

    console.log('browser launch');
    const browser = await puppeteer.launch();

    console.log('browser launched, open new page');
    const page = await browser.newPage();

    console.log('Go to example.com');
    await page.goto('https://example.com');
    await page.screenshot({path: process.env.USER + '_example.png'});

    await browser.close();
})();

我添加了用户名以验证正在运行脚本的用户,并且cron作业是这样的:

01 * * * * /usr/local/nvm/versions/node/v10.16.0/bin/node /var/node/pupp_test/init.js > /var/node/pupp_test/output.txt

因此,如果我手动运行该脚本:

process owner: franco
browser launch
browser launched, open new page
Go to example.com

但是,当脚本与cronjob一起运行时,输出文件就是:

process owner: franco
browser launch

如果进程所有者与bash和cron相同,我不理解为什么Puppeteer会出现此问题

我在NVM上安装了node.js,并用setup setuid sandbox配置了Puppeteer,因此我可以与计算机中的所有用户一起运行node和puppeteer。

在搜索我的问题时,我找到了一个谈论executing Puppeteer from PHP的话题,并且我已经在setfaclnode_modules/puppeter/.local-chromium/中尝试使用/usr/local/sbin/chrome-devel-sandbox,但是没有解决我的问题

  • 操作系统是Centos 7
  • 节点版本为10.16.0
  • 木偶版本为1.19.0

0 个答案:

没有答案