在终止Python过程之前,如何执行代码



这个问题涉及python中的多处理。我想在终止该过程时执行一些代码,以在终止之前更具体。我正在寻找一种用作Python程序atexit.register的解决方案。

我有一个方法工人,看起来:

def worker(): 而真: 打印("工作") 时间。 返回

我运行它:

proc =多处理。 proc.start()

我的目标是在终止它之前执行一些额外的代码,我做的:

proc.terminate()

使用信号处理和拦截sigterm:

import multiprocessing
import time
import sys
from signal import signal, SIGTERM
def before_exit(*args):
    print('Hello')
    sys.exit(0)  # don't forget to exit!

def worker():
    signal(SIGTERM, before_exit)
    time.sleep(10)
proc = multiprocessing.Process(target=worker, args=())
proc.start()
time.sleep(3)
proc.terminate()

在子过程终止之前产生理想的输出。

相关内容

  • 没有找到相关文章

最新更新