尝试使用 SIGHUP 信号时出现 NameError

NameError when trying to use the SIGHUP signal

我想在我的 Python 程序中捕获 SIGHUP 信号。但是我 运行 遇到 Python 无法识别信号名称的问题:

import signal
import time

def handler(sig, frame):
  print("SIGNAL:", sig)


signal (SIGHUP, handler)

while True:
  time.sleep(1)

Python不识别SIGHUP报错。有人知道怎么解决吗?

在 python 中,您必须自己显式导入信号。这应该有效:

from signal import signal, SIGHUP
import time 

def handler(sig, frame):
  print("SIGNAL:", sig) 

signal (SIGHUP, handler) 

while True: 
  time.sleep(1)