在Python中,您可以使用signal
模块来处理Linux信号
import signal
import sys
def handle_signal(signum, frame):
print(f"收到信号 {signum},程序即将退出...")
sys.exit(0)
# 注册信号处理函数
signal.signal(signal.SIGINT, handle_signal)
signal.signal(signal.SIGTERM, handle_signal)
print("程序已开始运行,按 Ctrl+C 或发送 SIGTERM 信号退出...")
while True:
pass
在这个示例中,我们首先导入signal
和sys
模块。然后定义一个名为handle_signal
的信号处理函数,该函数将在收到指定信号时被调用。在这个函数中,我们打印一条消息,然后使用sys.exit(0)
退出程序。
接下来,我们使用signal.signal()
函数注册信号处理函数。在这个例子中,我们注册了SIGINT
(通常由Ctrl+C触发)和SIGTERM
(通常由kill
命令触发)信号的处理函数。
最后,我们进入一个无限循环,让程序保持运行状态。当用户按下Ctrl+C或发送SIGTERM信号时,程序将捕获相应的信号并调用handle_signal
函数,从而优雅地退出程序。