我有一个简单的python脚本,它只运行一个无限的while循环并显示“running”。当我在后台使用nohup启动它时,我在当前目录中看到一个nohup.out文件,但是没有写入任何内容。我很困惑。我尝试了以下

nohup test.py

写入nohup.out,但显然不会在后台运行
nohup test.py &

在后台运行,但不写入nohup.out
nohup test.py 2>&1 &

也在后台运行,但不写入nohup.out

我敢打赌,我错过了一些简单的事情。有任何想法吗?

这是我的python脚本供引用:
import sys
from time import sleep

def main():
    print "Starting...."
    while True:
        print "running..."
        sleep(5.00)


if __name__ == "__main__":
     main()

最佳答案

也许您的标准输出没有立即刷新,因为它没有连接到终端。尝试使用

import sys
sys.stdout.flush()

刷新您的输出。

在 python3 中,您可以使用 flush=True 作为打印函数的参数来执行此操作。

print("running...", flush=True)

关于ubuntu - 为什么我的 nohup.out 是空的?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8537932/

10-13 09:08