我有一个很长的构建脚本,它混合了“真正的”Python代码和冗长的
subprocess.run()
调用,例如debootstrap
,wget
,apt-get
或build.sh
。
一切都是并行的。一个线程执行
debootstrap
,然后执行 apt-get
,而另一个线程执行 build.sh
,然后将两者连接起来,我们启动更多线程来组合结果,依此类推。每个线程都会记录到一个专用文件中。
在寻找一种通用方法来记录由这些线程之一启动的
subprocess.run()
的输出时,我得到了以下答案:https://stackoverflow.com/a/31868783/876832
在具有多个线程的Python脚本中调用
subprocess.run()
是一个错误吗?
在具有多个线程的Python脚本中调用
是一个错误吗?subprocess.run()
不。我一直这样做。
我认为您链接的答案是误导的。毕竟,您甚至不知道
subprocess.Popen()
及其外观(如 subprocess.run()
)是否使用 fork
系统调用(特别是在 Windows 上,它们当然不知道,因为那里不存在该调用)。