如何中断Python脚本中所有正在运行的信号?我想要像 signal.interrupt_all()
这样的东西。
有什么办法可以做到这一点吗?
谢谢
最佳答案
你到底是什么意思?您想暂时忽略某个信号,还是完全忽略某些类型的信号?
一般来说,信号一旦生成就无法“消失”。您可以将其操作设置为“忽略”,或者阻止该信号,阻止其传递,但您需要提前执行此操作。
在 POSIX 系统上,您的选项是(请参阅 Signal Concepts ):
- 通过将其处理程序设置为
SIG_IGN
,忽略信号。这也会导致挂起的信号被忽略(参见 Signal Concepts: SIG_IGN )。 - 阻止传送信号。该信号将保持挂起状态,但您的进程/线程不会收到它(直到它被解除阻塞)。不幸的是,您无法在 Python 中阻止信号:请参阅 signal module documentation .
请注意,您不能中断信号处理程序(信号捕获函数);这应该不是问题,因为信号处理程序预计会快速返回。
另请参阅此问题:Trapping Signals in Python .
关于python - 中断Python中所有正在运行的信号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2318831/