断管“当用cron运行python时

时间:2012-02-07 06:43:12

标签: python

我已经制作了一个广泛的脚本,从命令行或IDLE启动时运行正常。但是,当我尝试使用cron运行它时,它会一直出错: IOError:[Errno 32]管道损坏

2 个答案:

答案 0 :(得分:4)

如果脚本运行时间太长,cron将关闭它的stdout / stderr,它通常被重定向到日志文件(通过cron)。在超时后尝试打印将导致管道损坏。

解决方案是使用日志记录或仅打印到您自己的日志文件,而不是stdout。

另外,cron有不同的envinronment,在crontab或cron。(daily | hourly | ...)文件的顶部指定。确保它是正确的,特别是如果您依赖登录时设置的PATH或HOME。

答案 1 :(得分:0)

如果没有实际看到你的cron命令的一个例子或你的脚本做什么,我假设你的脚本中有一个popen或aome子进程命令。它试图将输出写入管道,而管道可能不存在于您的cron环境下。尝试将命令的输出记录到文件中。