每个进程调用一次信号处理程序

2024-05-16 15:04:21 发布

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

我有一个生成多个进程的程序,我用Ctrl+C终止它

在程序开始时,我捕捉信号以便执行一些清理操作。在

def cleanup(*_):
    # do cleanup operations here
    # ...
    exit(1)

# trap ctrl+c and hide the traceback message
signal(SIGINT, cleanup)

# spawn processes (pool of workers) and do work here
# ...

问题是cleanup被多次调用(每个运行的进程一次)。在

我怎样才能使cleanup只被调用一次?在


Tags: andthe程序here信号进程defexit
1条回答
网友
1楼 · 发布于 2024-05-16 15:04:21

您的子进程正在从其父进程继承信号处理程序。如果希望处理程序只在一个进程中执行,则可能需要在子进程中取消注册该处理程序。在

相关问题 更多 >