最近我在写一个 pyqt 的程序,里面需要调用外部的一个 mpi 程序进行计算。我看网上都用 Qprocess 起外部程序,我试了一下,确实可以直接跑外部的 mpi 程序,但当我想中途 kill 这个 mpi 程序的时候,发现了一个问题,就是 Qprocess 自己虽然被杀死了,但由它起的 mpi 进程仍在后台跑。各位大佬知道如何完全 kill 由 Qprocess 起的 mpi 程序吗?
附上我的 pyqt 代码片段:
process = QProcess()
process.setWorkingDirectory(f"{workDir}")
command = f"mpiexec -n {mpiNum} {SG_INTEXE}"
process.start(command)
while True:
if self.stopOneFlag:
process.kill()
process.waitForFinished(-1)
process = None
self.logChange.emit(f"{name}stop !\n")
logging.info(f"{name}stop !")
break
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.