进程关闭时禁用“连接”

2024-09-30 14:33:52 发布

您现在位置:Python中文网/ 问答频道 /正文

有没有办法阻止multiprocessingPython模块在父进程关闭的子进程上调用join()调用&wait on join()?在

2010-02-18 10:58:34,750 INFO calling join() for process procRx1

我希望发送SIGTERM的进程尽快退出(即“fail fast”),而不是等待几秒钟才最终放弃join尝试。在

说明:我有一个“中心流程”,它创建了一系列“子流程”。我正在寻找一种方法,以干净地处理来自任何进程的“SIGTERM”信号,从而使整个进程树倒下。在


Tags: 模块infofor进程on流程processfail
3条回答

听起来好像设置子进程的标志Process.daemon = False可能是您想要的:

Process.daemon

进程的守护进程标志,一个布尔值。必须在调用start()之前设置它。
初始值从创建过程中继承。
当进程退出时,它将尝试终止其所有守护进程的子进程。在

请注意,不允许守护进程创建子进程。否则,如果守护进程在其父进程退出时终止,则它的子进程将保持孤立状态。另外,这些不是Unix守护进程或服务,它们是正常进程,如果非破坏进程退出,它们将被终止(而不是加入)。在

你可以尝试加入一个有超时的循环(1秒?)然后检查线程是否仍然有效,比如:

while True:
  a_thread.join(1)
  if not a_thread.isAlive(): break

终止a_thread将触发break子句。在

您是否尝试过显式使用^{}?在

相关问题 更多 >