python

如何在python中处理linux信号

小樊
81
2024-12-09 15:24:10
栏目: 编程语言

在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

在这个示例中,我们首先导入signalsys模块。然后定义一个名为handle_signal的信号处理函数,该函数将在收到指定信号时被调用。在这个函数中,我们打印一条消息,然后使用sys.exit(0)退出程序。

接下来,我们使用signal.signal()函数注册信号处理函数。在这个例子中,我们注册了SIGINT(通常由Ctrl+C触发)和SIGTERM(通常由kill命令触发)信号的处理函数。

最后,我们进入一个无限循环,让程序保持运行状态。当用户按下Ctrl+C或发送SIGTERM信号时,程序将捕获相应的信号并调用handle_signal函数,从而优雅地退出程序。

0
看了该问题的人还看了