如何从 python 中杀死进程和子进程?

新手上路,请多包涵

例如来自 bash:

kill -9 -PID

os.kill(pid, signal.SIGKILL) 仅终止父进程。

原文由 Bdfy 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 749
2 个回答

当您将 PID 传递给 kill 时,它实际上通过该(绝对)数字将信号发送到进程 _组_。您在 Python 中使用 os.killpg() 执行等效操作。

原文由 Thomas Wouters 发布,翻译遵循 CC BY-SA 3.0 许可协议

如果父进程不是“进程组”,但你想用子进程杀死它,你可以使用 psutil ( https://psutil.readthedocs.io/en/latest/#processes )。 os.killpg 无法识别非进程组的 pid。

 import psutil

parent_pid = 30437   # my example
parent = psutil.Process(parent_pid)
for child in parent.children(recursive=True):  # or parent.children() for recursive=False
    child.kill()
parent.kill()

原文由 jung rhew 发布,翻译遵循 CC BY-SA 4.0 许可协议

推荐问题