Cron 有效,但在 chrome 中打开网页的预定作业无效

Sum*_*eek 6 command-line cron google-chrome

更新开始

  1. 我的一个朋友刚刚回答了这个问题。我需要这样做,export DISPLAY=:0 && <my GUI dependent command here>等待他在这里发布答案。
  2. 我也试过/opt/google/chrome/chrome PARTICULAR_GOOGLE_DOC_URL &没有&。还是失败了。直接在命令行上成功。
  3. /var/log/cron我的机器上没有文件。附属问题:我怎样才能得到它?

更新完

我有一个 Google 文档,我需要每天多次定期更新。无法以编程方式预测或确定将形成特定更新的内容。因此,我拥有的最佳解决方案是以固定的时间间隔自动打开特定的 Google Doc 页面,然后我手动将数据添加到其中。

现在,问题是直接在命令行上工作的东西在 crontab 中使用时不起作用。以下是我尝试过的(仅使用 2 分钟间隔进行测试)-

*/2 * * * * date >> /tmp/crontest
*/2 * * * * /opt/google/chrome/chrome PARTICULAR_GOOGLE_DOC_URL &
Run Code Online (Sandbox Code Playgroud)
  1. 如果我cat /tmp/crontest,我会看到每 2 分钟添加一次时间戳
  2. 如果我只是/opt/google/chrome/chrome PARTICULAR_GOOGLE_DOC_URL在外壳上尝试,它会按预期工作
  3. 但是PARTICULAR_GOOGLE_DOC_URL没有像它应该的那样每 2 分钟在我的 chrome 中打开一次。(再次:我使用 2 分钟间隔只是为了测试)

我究竟做错了什么?我应该如何解决这个问题?实现我需要完成的工作的任何替代方法?

提前致谢。

小智 10

使用export DISPLAY包装器编辑 crontab :

2 * * * * export DISPLAY=:0 && firefox %u
Run Code Online (Sandbox Code Playgroud)

这将打开一个空的 Firefox 选项卡,您可以使用您喜欢的 URL。


chr*_*tis 6

cron适用于命令行的工作,并运行命令用非常有限的环境变量-只是HOMELOGNAMEPATH,和SHELL

至少,chrome将需要DISPLAY设置。如果没有其他变量(例如,DBUS相关变量),它也可能不高兴。env在终端中运行以查看您当前的环境。