当前位置: 首页 > 面试题库 >

Python-捕获所有信号

孙永思
2023-03-14
问题内容

在Linux下的python 2.6中,我可以使用以下命令来处理TERM信号:

import signal
def handleSigTERM():
    shutdown()
signal.signal(signal.SIGTERM, handleSigTERM)

除了仅一次设置一个信号,是否可以为该过程接收的所有信号设置处理程序?


问题答案:

您可以循环浏览信号模块中的信号并进行设置。

for i in [x for x in dir(signal) if x.startswith("SIG")]:
  try:
    signum = getattr(signal,i)
    signal.signal(signum,sighandler)
  except (OSError, RuntimeError) as m: #OSError for Python3, RuntimeError for 2
    print ("Skipping {}".format(i))


 类似资料:
  • 我知道有可能向JBPM/BPMS发出外部信号以启动工作流。你使用信号启动事件,我可以很好地工作。 我想知道的是,没有相应的信号参考的信号会发生什么。 我正在捕获某些事件并将它们发送到JBPM,我希望有一个catch all工作流或规则,如果没有相应的工作流启动,以便这些事件仍然可以被处理。 任何想法都将不胜感激。

  • 这个问题不是关于Rollbar tho:)

  • 问题 怎样捕获代码中的所有异常? 解决方案 想要捕获所有的异常,可以直接捕获 Exception 即可: try: ... except Exception as e: ... log('Reason:', e) # Important! 这个将会捕获除了 SystemExit 、 KeyboardInterrupt 和 GeneratorExit 之外的所有异常。

  • 我想在try块中捕获PyCharm的stop信号(当stop被按下时),但是我不知道这个信号是什么或者如何在代码中捕获它。JetBrains在他们的文档中没有提供这方面的见解。 我尝试将其捕获为,但它似乎根本不是异常。 这在编程上是完全可以捕获的吗?

  • 问题内容: 我想在Go中实现“流程包装器”。基本上它将执行的是启动一个进程(比如说一个节点服务器)并监视它(捕获诸如SIGKILL,SIGTERM之类的信号…) 我认为要做的方法是使用以下命令在go例程中启动节点服务器: 然后,我想捕获由执行的命令生成的所有可能的信号。我是Go的新手,我们将不胜感激。 问题答案: Go中有三种执行程序的方式: 包含syscall.Exec,syscall.Fork

  • 在Rabbitmq中给出 交换 两个名为default和specific的队列 总共有两个路由密钥。具体而全面* 采用以下方案 我试图实施以下内容(没有成功) > 如果路由键为“all.specific”的邮件到达,则必须路由到特定队列 如果具有路由关键字“all.generic”的消息到达,则必须将其路由到默认队列 我尝试了两种不同的方法 1)交换类型“直接” 我无法在路由键中使用通配符,因此无