我找到了几种杀死子进程的方法。我想使用os.kill(pid)方法。但是它没有生效,尽管我认为它应该可以。 def onExit(): os.kill(logProc, 0) QtCore.QCoreApplication.instance().quit return button.clicked.connect(onExit) logProc=os.fork() if logProc>0: proc()
您应该传递类似 signal.SIGKILL (9)、signal.SIGTERM (15) 的信号来终止进程。 import signal ... os.kill(logProc, signal.SIGKILL) 根据Linux的kill(2)函数: 如果sig是0,则不发送信号,但仍会执行错误检查;这可用于检查进程ID或进程组ID是否存在。
os.kill
并不能杀死一个进程,它只是向该进程发送指定的信号(是的,这很令人困惑)。 - Roman Bodnarchuk