📜  python catch sigterm - Python (1)

📅  最后修改于: 2023-12-03 14:45:56.536000             🧑  作者: Mango

Python捕捉SIGTERM信号

在Python程序运行过程中,有时候需要处理系统发送的信号。其中,SIGTERM信号是一个常见的信号,表示进程将要被终止。在程序中正确地捕捉SIGTERM信号,可以让程序有机会进行柔性退出和资源释放。

以下是一个例子程序可以在接收到SIGTERM信号时进行一些处理:

import signal
import time

def handle_sigterm(signum, frame):
    print('Received SIGTERM')
    # do some cleanup here
    time.sleep(2)
    print('Cleanup completed, exiting')
    exit(0)

signal.signal(signal.SIGTERM, handle_sigterm)

# main loop
while True:
    print('Running')
    time.sleep(1)

首先,我们使用signal库将SIGTERM信号与一个处理函数进行绑定。handle_sigterm函数就是我们要执行的操作,其中可以包含一些资源清理和关闭动作。在接收到信号后,程序会执行handle_sigterm函数,完成一些清理动作后退出程序。

接下来,我们进入程序的主循环。在循环中,程序一直进行一些工作,并且睡眠1秒钟。当接收到SIGTERM时,程序会跳转到handle_sigterm函数,并进行定义好的清理操作。

Python代码可以通过多种方式运行,例如使用命令行工具直接运行,或者通过Docker等方式构建一个可执行的程序。不管怎样,正确地处理信号可以让你的程序更加健壮。