python - 中断Python中所有正在运行的信号?

标签 python signals

如何中断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/

相关文章:

python - keras中填充整数和字符串的区别

python - 使用 conda 生成的 requirements.txt 设置 virtualenv

无法在信号处理程序中设置信号掩码

c - 使用信号的 C 语言 3 人游戏

python - 如何在打印前让单个字符串的行 sleep ?

python - 正则表达式精确匹配

python - 如何在scapy中欺骗TCP握手?

linux - 增加 Linux 中文件描述符的数量

unix - Unix 中的信号是什么?

MySQL 触发器不完全工作