温馨提示×

如何在python中处理linux信号

小樊
86
2024-12-09 15:24:10
栏目: 编程语言
Python开发者专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

在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函数,从而优雅地退出程序。

亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

推荐阅读:Linux中sigpipe信号怎么处理

0