很多人都有在linux上执行守护进程得经验,比如:

nohup python aa.py &

正常情况下会将aa.py中的打印信息写入到nohup.out中,但今天发现一个问题,不会写入。查看原因之后才发现aa.py中存在time.sleep,代码如下:

import time
while 1:
    time.sleep(1)
    print 11111

后来在网上找了很多资料才知道是sys.stdout缓冲问题,将代码修改如下:

import time
while 1:
    time.sleep(1)
    print 11111
    sys.stdout.flush()

即可修复以上代码