我正在使用 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