运行Python时使用cron遇到“Broken pipe”错误

1 投票
1 回答
1231 浏览
提问于 2025-04-17 12:29

我写了一个很复杂的脚本,在命令行或者IDLE中运行得很好。但是当我尝试用cron来运行它时,总是出现错误:IOError: [Errno 32] Broken pipe。

1 个回答

6

如果你的脚本运行时间太长,cron会关闭它的标准输出和错误输出,这些通常是通过cron重定向到日志文件的。超时后再尝试打印内容会导致“破管道”错误。

一个解决办法是使用logging模块,或者只将信息打印到你自己的日志文件中,而不是标准输出。

另外,cron的环境设置是不同的,这些设置在crontab文件的顶部或者cron的(daily|hourly|...)文件中指定。确保这些设置是正确的,特别是如果你依赖于登录时设置的PATHHOME变量。

撰写回答