一尘不染

Python-捕获所有信号

linux

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

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

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


阅读 385

收藏
2020-06-02

共1个答案

一尘不染

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

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))
2020-06-02