我有2个python代码,我安排使用cron。我的代码实际上是每天上午10:30到下午4:20。从上午10:30到上午11:00,我的代码每分钟输出2-3行,然后他们开始每分钟输出30-40行。我安排了这样的代码。
30 10 * * 1-5 cd /home/alpha/IBpy && python LongData.py >> /home/alpha/logs/Longdata.op 2>> /home/alpha/logs/Longdata.er
31 10 * * 1-5 cd /home/alpha/IBpy && python ShortData.py >> /home/alpha/logs/Shortdata.op 2>> /home/alpha/logs/Shortdata.er
现在的问题是,我的程序工作正常,他们正在做他们应该做的一切。如果发生任何错误,它们会立即将错误写入错误日志文件,但它们甚至不会将单行写入输出文件。我检查了几乎所有可以帮助我在这里和stackoverflow的帖子,但不幸的是他们都没有帮助我。但是,如果我在上午11:00(当程序开始输出30-40行)而不是10:30开始相同的程序,一切正常。我真的不知道我做了什么错事。我不应该在11开始我的计划。任何帮助将不胜感激。
答案 0 :(得分:1)
似乎我遇到了这个问题,因为stdout的数据被缓冲了。根据{{3}}帖子,我刚刚将我的cron工作改为
31 10 * * 1-5 cd /home/alpha/IBpy && stdbuf -i0 -o0 -e0 python ShortData.py >> /home/alpha/logs/Shortdata.op 2>> /home/alpha/logs/Shortdata.er
现在每件事情都很好。