【问题标题】:python script does not run from cronpython脚本不从cron运行
【发布时间】:2011-06-07 20:31:40
【问题描述】:

我有一个 Python 脚本“start.py”,它可以从命令行很好地执行。其中只有一个语句(打印“hello”)。编辑:start.py 在第一行还包含一个工作解释器指令。

一旦我从 cron 作业运行脚本,每次触发时,系统日志中都会显示一条消息:

Jun  7 02:57:01 mit CRON[23275]: Module is unknown

我已经尝试将 PATH 和 PYTHONPATH 信息添加到 cron 文件中:

$ cat /etc/cron.d/my_cron
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PYTHONPATH=/usr/lib/python2.6:/usr/lib/python2.6/plat-linux2:/usr/lib/python2.6/lib-tk:/usr/lib/python2.6/lib-old:/usr/lib/python2.6/lib-dynload:/usr/lib/python2.6/dist-packages:/usr/lib/pymodules/python2.6:/usr/lib/pymodules/python2.6/gtk-2.0:/usr/local/lib/python2.6/dist-packages
* * * * * mit /home/mit/dev/start.py

我找到了几个看起来相同但没有任何帮助的答案和解决方案。我错过了什么?

【问题讨论】:

  • 可能是文件所有权或权限问题。
  • 为什么你的 crontab 中还需要 'mit'?
  • 请发布您的脚本内容...第一行需要指定您的解释器,例如#!/usr/bin/python
  • 该错误消息听起来更像 pam(7),而不是 Python 或 cron(8)。您的/etc/pam.d/cron 文件中有什么内容?它需要不存在的模块吗?
  • 看起来像 PAM 错误。您最近更新了 PAM 吗?可能需要重启 crond

标签: python ubuntu cron ubuntu-10.04 pam


【解决方案1】:

最近更新的 PAM 破坏了 cron。尝试重新启动计算机(或使用 sudo /etc/init.d/cron restart 重新启动 cron)

【讨论】:

  • 我会试试的。我注意到 cron 脚本之前工作过,但在某个时间点不再执行。
  • 非常感谢。一个 cron 重启做到了。 :)
【解决方案2】:

你忘了在前面加上python。

* * * * * mit /usr/bin/python /home/mit/dev/start.py

【讨论】:

  • 如果文件被 chmod 为可执行文件并且第一行包含解释器指令,这可能不是问题。
  • 抱歉发布不完整。我尝试了所有有或没有 python 的组合,还有带有正确解释器的 shebang 行。当我以用户 'mit' 身份启动 '/home/mit/dev/start.py' 时,该脚本从命令行运行
猜你喜欢
  • 2015-03-16
  • 1970-01-01
  • 1970-01-01
  • 2014-11-01
  • 1970-01-01
  • 2011-05-26
  • 2011-05-28
  • 2017-05-28
相关资源
最近更新 更多