如何运行python自动通过CRONTAB打开浏览器?

Posted

技术标签:

【中文标题】如何运行python自动通过CRONTAB打开浏览器?【英文标题】:How do I run python to open a browser through CRONTAB automatically? 【发布时间】:2017-07-25 02:39:20 【问题描述】:

我一直在互联网上搜索,但没有找到我的问题的正确答案。 这是我的详细问题:

有python打开网络浏览器。我可以在终端上手动运行它,效果很好。

但是当我把它放到 crontab 中时,网页浏览器无法打开。这是我的 contab 命令:

*/1 * * * * /usr/bin/python /home/pi/test.py 2>&1 >/dev/null | tee -a /home/pi/test.log

请注意这是一个显示问题。 Python 执行成功。

我检查了 crontab 创建的日志,它说:

无法连接到 X 服务器

所以我尝试在我的 contab 中添加环境变量并将其更改为:

*/1 * * * * export DISPLAY=:0.0 && /usr/bin/python /home/pi/test.py 2>&1 >/dev/null | tee -a /home/pi/test.log

还是不行。我在 crontab 中添加了一些其他内容,例如:

/usr/bin/xhost +
/usr/bin/ssh pi@localhost -X

但它就是行不通!

现在我不知道该怎么办。谁能告诉我它有什么问题以及如何解决它?非常感谢!

真诚地, 海伦

【问题讨论】:

如果您解决了您的问题,为什么不将您的答案添加到答案列表中而不是编辑您的问题? 哦,我明白了。谢谢您的建议。 @约翰菲利普 【参考方案1】:

很兴奋,因为我解决了这个问题!我是这样实现的:

我编写了一个 shell 脚本来运行 python 脚本。这是我的 shell 脚本(名为“shell.sh”):

#!/bin/bash 
xhost +local:root 
export DISPLAY=:0.0
python /home/pi/test.py

这里我觉得xhost +local:root 也可以换成xhost + localhost。如果您的用户是 root。

这是我的 crontab 命令:

 */1 * * * * /bin/bash /home/pi/shell.sh 2>&1 >/dev/null | tee -a /home/pi/shell.log

现在完美运行了!!

任何和我有同样问题的人可以看看这个链接:Cannot connect to X server :0.0 with a Qt application

【讨论】:

以上是关于如何运行python自动通过CRONTAB打开浏览器?的主要内容,如果未能解决你的问题,请参考以下文章

我如何在Jetson TX2上自动运行Python脚本?

如何通过脚本创建 crontab

如何让python 脚本在指定的时间内运行,如在10点,让一个python脚本自动跑

python在通过crontab运行时不提取zipfile

如何使用 crontab 运行运行 Python 脚本的 Bash 脚本

Selenium控制已打开的浏览器-python-edge