signal.signal

发布时间 2023-12-27 20:04:20作者: MoKin_Li

Python的signal模块允许您设置信号处理程序,以便在接收到特定信号时执行自定义操作。信号是操作系统向程序传递信息的一种方式。在Python中,您可以使用signal.signal()函数注册信号处理程序,以便在接收到特定信号时执行自定义操作。例如,当按下键盘上的Ctrl + C时,操作系统会生成SIGINT信号并将其传递给程序。您可以使用signal.signal()函数注册SIGINT信号处理程序,以便在接收到该信号时执行自定义操作。

以下是一个示例代码,演示了如何在Python中设置信号处理程序:

```python
import signal
import time

# 信号处理程序
def signal_handler(signum, frame):
    print("Signal Number:", signum, " Frame: ", frame)

# 注册SIGINT信号处理程序
signal.signal(signal.SIGINT, signal_handler)

# 注册SIGTSTP信号处理程序
def exit_handler(signum, frame):
    print('Exiting....')
    exit(0)
signal.signal(signal.SIGTSTP, exit_handler)

# 循环
while 1:
    print("Press Ctrl + C")
    time.sleep(3)
```

在这个示例中,我们注册了SIGINT信号处理程序和SIGTSTP信号处理程序。当按下Ctrl + C时,程序将执行signal_handler()函数。当按下Ctrl + Z时,程序将执行exit_handler()函数并退出。

此外,您还可以使用signal.alarm()函数设置定时器信号(SIGALRM)。这样,当定时器到期时,程序将执行相应的信号处理程序。

希望这可以帮助到您。