Python3 signal — 同步系统事件
Python 的 signal
模块提供了进程间通信的系统事件处理机制。它可以处理例如程序运行中断信号等异步事件。
以下是一个使用 signal
模块处理系统信号的例子:
import signal
import time
import os
def handle_signal(signum, frame):
print('Received signal: {}'.format(signum))
print('Terminating...')
os._exit(0) # 强制终止Python程序
# 设置信号处理函数
# 这里设置了当程序接收到SIGINT(通常是Ctrl+C触发)和SIGTERM(系统请求终止)信号时的处理方式
signal.signal(signal.SIGINT, handle_signal)
signal.signal(signal.SIGTERM, handle_signal)
print('Waiting for signals...')
# 程序会在这里等待,直到有信号被触发
while True:
time.sleep(1)
在这个例子中,我们定义了一个信号处理函数 handle_signal
,它会在接收到信号时被调用。然后我们用 signal.signal()
函数将信号处理函数与信号关联起来。程序会进入一个循环,等待并响应系统信号。当用户使用 Ctrl+C 或系统管理员执行 kill
命令时,程序会优雅地退出。
评论已关闭