尝试crontab命令时CalledProcessError

时间:2015-03-11 04:00:42

标签: python unix subprocess

我有一个简单的脚本,它使用subprocess.check_output来运行crontab命令。但是,当我执行crontab的脚本时,它返回退出代码为1,如果我打印错误输出,它会打印“no crontab for user”,这是它应该打印而不进入错误模式。

这是我的剧本:

import subprocess

    try:

        string = subprocess.check_output(['crontab','-l'])
        print "Yes! "
        print string
    except subprocess.CalledProcessError as e:
        print e.output

奇怪的是,如果我运行ls -l而不是crontab -l,一切都按预期运行,我得到了我想要的输出。但是,一旦我运行crontab -l,如果我删除print e.output:

,这就是我得到的
Traceback (most recent call last):
  File "python1.py", line 3, in <module>
    string = subprocess.check_output(['crontab','-l'])
  File "/usr/lib/python2.7/subprocess.py", line 544, in check_output
    raise CalledProcessError(retcode, cmd, output=output)
subprocess.CalledProcessError: Command '['crontab', '-l']' returned non-zero exit status 1

正如我上面提到的,e.output产生“没有用户的crontab”,但是不应该返回错误,它应该作为正常输出返回。我在这里错过了什么吗?

0 个答案:

没有答案