nohup 未更新 nohup.out

nohup 未更新 nohup.out

归根结底,这里最小的问题是一个简单的 python 脚本,我想在 Linux 上使用 nohup 运行它。我使用以下命令运行它(在 Linux 上):

 nohup python test.py &

该命令似乎只是不执行任何操作,没有任何内容附加到 nohup.out。如果我在没有“&”的情况下运行它,输出将在终端窗口上正确显示。我缺少什么?

 import time

 def test():
   while(True):
     print "Woke up!"
     time.sleep(5)

 if __name__ == "__main__":
    test()

答案1

尝试使用命令运行它nohup python -u test.py &。这应该使输出无缓冲。

您可以通过添加 bang 路径作为带有该选项的第一行来使脚本可执行-u。您还需要使用命令设置可执行位chmod +x test.py

#!/usr/bin/python -u
import time
....

然后您可以将其运行为nohup test.py &.

答案2

我猜是基于块的 I/O 缓冲。如果您setvbuf(3)在标准输出上设置基于行或无缓冲输出的 Python 等效项,会发生什么?

相关内容