如何在每天的特定时间自动打开 URL

如何在每天的特定时间自动打开 URL

我正在使用 kubuntu 14.04。我已经使用 sudo apt-get install cron 安装了 cron,然后在 IDLE 中创建了这个文件,名为openurl.py

#!/usr/bin/env python

import webbrowser

webbrowser.open('http://eample.com')

然后我chmod +x openurl.py在终端中输入内容以使 .py 文件可执行。如果我./openurl.py在终端中输入内容,脚本就会运行。

然后,使用启动应用程序启动器,我单击系统设置>任务计划程序>新任务>然后我搜索 openurl.py 文件,并选择我希望它运行的时间。

如果我crontab -e在终端输入,则会显示以下内容:

#openurl
21 21 * * *     /home/craig/openurl.py


# File generated by KCron the Thursday 29 Jan 2015 21:20.

然后我等待,什么也没发生。我做错了什么?

答案1

问题已经解决这里.

更改的 crontab以使用脚本路径作为参数cron启动您喜欢的解释器:Python

21 21 * * * /usr/bin/python /home/craig/openurl.py

请记住,标准符号链接将指向解释器的默认版本,如果您的软件基于 2.X 语法,则可能不正确Python。守护
进程cron可能以提升的权限启动解释器,使用受限解释器自动执行安全关键任务

编辑解决 cronjob 设置后更大范围的问题

实时监控作业和其他系统守护进程完成cron,在终端中执行:

tail -f /var/log/syslog

或者

tailf /var/log/syslog

(在某些系统上,日志文件的路径不同, 例如/var/log/cron.log

重定向 cron 任务的输出,在 cronjob 文件中插入 STDOUT 的 shell 重定向,例如:

21 21 * * * /usr/bin/python /home/craig/openurl.py >> /home/craig/test.log

Python脚本中,类似命令print('TEST')将附加字符串测试test.log;任何简单的子进程也将被重定向。
只需检查文件即可知道脚本是否按预期工作。

如果您有更多问题,请随时在此处发表评论,如果我有任何帮助,请不要忘记按左上箭头并标记为收藏。祝您

有美好的一天。

答案2

我遇到了和你一样的问题。你的工作可能失败了,因为它需要X 会议,因为你正在尝试打开 Web 浏览器。你应该export DISPLAY=:0;在 cronjob 中的计划后面添加,例如

21 21 * * * export DISPLAY=:0; /usr/bin/python /home/craig/openurl.py >> /home/craig/test.log

 python3 /home/fin/Labs/my-cheatcodes/src/dsktp_startup_script/dsktp_startup_script.py > capture_report.txt

如果这不起作用,您可以尝试用图形终端中:0的输出替换。echo $DISPLAY

相关内容