Python叉子()断开,在输出通过管道传输时重新启动脚本

2024-09-30 05:14:49 发布

您现在位置:Python中文网/ 问答频道 /正文

如果不指出10个不同的库以不同的方式执行此操作,有人能告诉我为什么在命令行上重定向STDOUT时python会重新启动我的脚本吗?(在CentOS 7上运行)

#!/usr/bin/python
import os
print("Top of the script")
pid = os.fork()
print("Pid: " + str(os.getpid()))

常规输出为:

$ ./forktst2.py
Top of the script
Pid: 1919
Pid: 1920

但当我把它输送到任何东西时,它就会变成:

$ ./forktst2.py | cat
Top of the script
Pid: 2151
Top of the script
Pid: 2153

这让人倍感困惑,因为如果它正在重新运行第一个print(),那么为什么它不也在重新运行os.fork()?你知道吗

谢谢!你知道吗


Tags: ofthe命令行py脚本ostopstdout

热门问题