如何终止一个子进程

4

我找到了几种杀死子进程的方法。我想使用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()

os.kill并不能杀死一个进程,它只是向该进程发送指定的信号(是的,这很令人困惑)。 - Roman Bodnarchuk
1个回答

4

您应该传递类似 signal.SIGKILL (9)、signal.SIGTERM (15) 的信号来终止进程。

import signal

...

os.kill(logProc, signal.SIGKILL)

根据Linux的kill(2)函数:

如果sig0,则不发送信号,但仍会执行错误检查;这可用于检查进程ID或进程组ID是否存在。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接