我正在使用此命令启动Python子进程:
p = subprocess.Popen(command, stdout=subprocess.PIPE, shell=True, start_new_session=True)
根据this answer,start_new_session=True
(等同于preexec_fn=os.setsid
)允许我使用os.killpg(p.pid, signal.SIGTERM)
终止该过程。
但是,如果command
恰好是setsid sleep 10000
,则该过程不会终止。在Python中,我如何终止像这样的子进程?