Python - nohup.out不显示print语句
我刚开始学习Python和网页开发,遇到一个基本的问题。
我用Pyramid在运行我的服务器,并且使用nohup.out这个文件来记录输出。
nohup ../bin/pserve development.ini
当我输入 tail -f nohup.out
我可以看到我代码中所有来自 logging.info()
的输出。
但是我看不到所有来自 print()
的输出。
这是什么原因呢?我该怎么设置才能在nohup文件中看到print()的输出呢?
3 个回答
4
当输出不是发送到终端时,打印的内容会被暂时存储起来。nohup
命令会把标准输出替换成一个非终端的地方(实际上是一个文件)。
没有具体的代码,我只能猜测,但最可能的原因是你的输出在Python程序内部被暂时存储了,当这个存储区满了,它才会被写入到nohup.out
文件中。为了确认是不是这样,可以尝试增加更多的打印语句,这样可以更快地填满这个存储区。
11
你可以使用 stdbuf -oL 来刷新打印语句。命令看起来像这样:
nohup stdbuf -oL python python_script.py > nohup.out &
26
你可以使用
nohup python -u python_script.py &