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)。这样,当定时器到期时,程序将执行相应的信号处理程序。
希望这可以帮助到您。
标签:程序,signal,SIGINT,handler,exit,信号处理 From: https://www.cnblogs.com/MoKinLi/p/17931317.html