如何在Python中处理几个相同的未阻塞信号?

时间:2015-10-01 14:29:25

标签: python unix signals handler

请参阅以下python代码:

signal.pthread_sigmask(signal.SIG_BLOCK, range(1, signal.NSIG)) #block signals
time.sleep(60) #waiting 60 seconds
pending = signal.sigpending() #check how much signals in pending state

当应用程序处于休眠状态时,我发送了五个SIGUSR1信号,但是我在待处理时只收到一个SIGUSR1信号。
我可以收到所有发送的SIGUSR1信号吗?

1 个答案:

答案 0 :(得分:2)

在Python中通过信号模块不排队一个类型信号的多个实例。当您的应用程序处于睡眠状态时,您将收到所有已发送的信号,但在此之后您只能检测到一个最新信号。