如何在LINUX上使用cron运行python脚本

时间:2018-09-17 18:05:33

标签: python cron

我正在尝试使用cron在raspberrypi上运行python脚本。

我做了以下事情:

crontab -e # To edit a crontab job

打开cron文件后,我添加了以下行:

@reboot /usr/bin/python /home/pi/path/to/file/example.py > /home/pi/cronlogs/mylog.log # JOB_ID_!

如果我正确地理解了文档,则该cron作业应在系统启动后每次执行。但是,就我而言,当我重新启动计算机时,该脚本将不会执行。

奇怪的是:

  • 我检查了日志文件,它为空,所以看来一切正常
  • 如果我手动运行给定命令(因此基本上将以下代码写入终端),它将执行并正常工作:/usr/bin/python /home/pi/path/to/file/example.py > /home/pi/cronlogs/mylog.log

我想我错过了一些确实很明显的事情,但我看不到。请问任何建议如何调试此。谢谢!

1 个答案:

答案 0 :(得分:0)

cron定义看起来正确;我刚刚在运行Debian的Pi上进行了检查,效果很好:

@reboot /usr/bin/python /home/pi/example.py > /home/pi/mylog.log

它可能无法正常工作的其他一些原因:

  • 工作目录问题(如果您使用相对路径)
  • 长时间运行的脚本(可能需要一段时间才能完成抓取脚本的操作)-您可以使用ps aux | grep python来检查它是否仍在运行
  • 该脚本不会输出任何内容(需要有关该脚本的更多详细信息)

只要确保您从脚本中捕获到任何错误,就可以使用2>&1

stderr 重定向到 stdout