
近期python写了个DNS得轮询脚本,交给调度器每分钟执行一次,解析失败就告警。
问题来了,中间使用print打印一些日志,想通过nohup运行方式收集print输出内容作为日志,
但是已经执行5分钟了,nohup.out还是空,什么都没输出,
起初以为是默认输出级别不对,于是改为
nohup python test.py > nohup.out 2>&1 &
然而并没有任何效果,最后搜索引擎告诉了我,
这是因为python的输出有缓冲,导致nohup.out并不能够马上看到输出。
python 有个-u参数,使得python不启用缓冲。
所以最终的启动命令为:
nohup python -u test.py > nohup.out 2>&1 &
END