首页 文章

Cronjob不运行Python脚本,即使它具有执行权限和hashbang到python的完整路径 . 通常在cronjob之外工作

提问于
浏览
0

我的crons正常工作,我用简单的文件输出和bash脚本测试它,但是在执行我的python脚本时我没有尝试过 .

所以这就是我所做的 .

按照惯例,我在剧本中添加了一个shebang

#! /usr/bin/python3.5

chmod +x myPythonScript.py

我将它添加到crontab -e并以各种方式进行测试 .

例子:

* * * * * /path/to/myPythonScript.py

而且我确定我甚至做了以下事情

* * * * * python /path/to/myPythonScript.py

* * * * * python3.5 /path/to/myPythonScript.py

* * * * * /usb/bin/python /path/to/myPythonScript.py

* * * * * /usb/bin/python3.5 /path/to/myPythonScript.py

甚至做了* / 1 * * * *和其他时间测试 .

什么都没有用,如果我在cron之外写下所有这些,每次都能完美地运行 . 我甚至改变了crontab中的SHELL -e知道它不会有任何区别,但只是为了确定,将脚本粘贴在/etc/cron.hourly中,nope,尝试使用/ usr / bin / env python而不是平常的shebang,尝试了所有其他愚蠢的事情,但它没有成功 .

Cronjobs在运行bash脚本时工作得很好,我甚至运行了一个bash脚本来检查我的python脚本是否启动并在文本日志中通知我,如果不是,重新启动它并通知我,我的文本日志充满了重启,这是因为它从未运行python脚本,所以cron显然工作,因为它运行了bash脚本 .

1 回答

  • 1

    运行cron时,应始终将标准输出/错误写入文件以查看发生的情况 . 不要信任邮件,因为您的邮件服务器可能/可能没有设置 .

    所以,试一试

    * * * * * python /path/to/myPythonScript.py 1>/tmp/myPythonScript.out 2>/tmp/myPythonScript.err
    

    1分钟后检查文件/tmp/myPythonScript.{out,err}是否存在 . 这将为您提供明确的方向 .

    再次,总是写出你的标准输出/错误

相关问题