在Python中殺掉進程樹非常簡單。如果想要殺掉一個進程及其所有子進程,只需要使用os.killpg()函數即可。
下面是一個示例代碼:
import os import signal def kill_process_tree(pid): os.killpg(os.getpgid(pid), signal.SIGTERM)
這個函數接受要殺死的進程的pid作為參數。它將獲取該進程所在進程組的PGID并向整個進程組發送SIGTERM信號,從而殺死所有子進程。
如果需要殺掉進程及其子進程的所有子進程,可以使用遞歸。
import psutil def kill_process_tree(pid): process = psutil.Process(pid) for child in process.children(recursive=True): child.kill() process.kill()
這個版本使用了psutil庫,它可以方便地獲取進程的所有子進程。它首先循環殺死所有子進程,然后殺死進程本身。
總的來說,在Python中殺掉進程樹非常簡單。只需要使用os.killpg()或使用遞歸函數和psutil庫即可輕松完成。