相关疑难解决方法(0)

如何优雅地处理SIGTERM信号?

让我们假设我们有一个用python编写的这样一个简单的守护进程:

def mainloop():
    while True:
        # 1. do
        # 2. some
        # 3. important
        # 4. job
        # 5. sleep

mainloop()
Run Code Online (Sandbox Code Playgroud)

然后我们使用start-stop-daemon默认的send SIGTERM(TERM)信号进行守护--stop.

我们假设当前执行的步骤是#2.在这个时刻,我们正在发送TERM信号.

会发生什么是执行立即终止.

我发现我可以处理信号事件,signal.signal(signal.SIGTERM, handler)但问题是它仍然会中断当前执行并将控制传递给handler.

所以,我的问题是-它可以不中断当前执行,但处理TERM(?)在独立的线程信号,使我能够设置shutdown_flag = True,使mainloop()有机会停止正常?

python daemon sigterm start-stop-daemon

177
推荐指数
6
解决办法
13万
查看次数

标签 统计

daemon ×1

python ×1

sigterm ×1

start-stop-daemon ×1