gpt4 book ai didi

python - 如何在python中终止进程之前执行代码?

转载 作者:行者123 更新时间:2023-11-30 22:41:27 26 4
gpt4 key购买 nike

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

我有一个方法 worker ,它看起来:

def worker (): 而真实: 打印('工作') 时间. sleep (2) 返回

我运行它:

proc = multiprocessing.Process(target=worker, args=()) 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()

在子进程终止之前产生所需的输出。

关于python - 如何在python中终止进程之前执行代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42560706/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com