subprocess.popen没有在cronjob

时间:2015-11-29 21:29:12

标签: python linux bash cron

我有一个python脚本需要在linux中收集命令行实用程序的输出。我曾使用下面的子进程方法来读取输出:

proc = subprocess.Popen(["cmd","arg"], stdout=subprocess.PIPE, shell=True)
(raw_domain, err) = proc.communicate()

当我从bash手动执行脚本时,它正常工作并返回命令输出,但是当我将此脚本执行添加到crontab时,subprocess.popen没有返回任何输出。

Crontab表达式:

* * * * root python /apoorv/cleanup_null_domain.py

我验证了空白'使用日志返回,我很确定。

想要提一下,我也使用了os.popen方法。相同的结果:(

2 个答案:

答案 0 :(得分:1)

你正在代码中捕获stdout和stderr,所以它显然不会输出任何内容。打印值,或者更好的是,将它们写入日志文件。

答案 1 :(得分:1)

在第一行编辑你的脚本

sprout 1 [set shape "hedgerow" set color green set heading 0]

#!/usr/bin/env python

并使其可执行

#!/usr/bin/python

然后在crontab中

chmod +x /apoorv/cleanup_null_domain.py