1

我已经设置了一个 cronjob,如下所示,当我从 shell 运行它时,脚本运行得非常好,但是当通过 cronjob 运行时,我遇到了以下错误。

知道 cronjob 是做什么的吗?这里有什么环境问题吗?任何调试指针?

28 21,0 * * * /usr/bin/python /local/mnt/workspace/user/Automation/script.py project branch 

错误

   Traceback (most recent call last):
      File "/local/mnt/workspace/user/Automation/script.py", line 74, in <module>
        output = phCmdoutput(phCmd)
      File "/local/mnt/workspace/user/Automation/script.py", line 28, in phCmdoutput
        phPipe = Popen(phCmd, stdout=PIPE, stderr=PIPE)
      File "/usr/lib/python2.7/subprocess.py", line 679, in __init__
        errread, errwrite)
      File "/usr/lib/python2.7/subprocess.py", line 1249, in _execute_child
        raise child_exception
    OSError: [Errno 2] No such file or directory
4

2 回答 2

1

看起来phCmd句子phPipe = Popen(phCmd, stdout=PIPE, stderr=PIPE)中正在使用某些文件或程序本身的相对路径名。您可以检查一下,并将它们更改为绝对路径。

于 2013-08-15T07:40:09.797 回答
0

是的,存在环境问题-您没有相同的环境! $PATH,例如,可能会有所不同。

最可能的原因是phCmd通过相对路径名而不是绝对路径名包含程序名称。运行程序时的一般规则cron是对所有内容使用完全限定的绝对路径名。

于 2013-08-15T07:40:23.597 回答