如果进程终止,请执行某些操作

时间:2020-05-11 19:40:33

标签: python process exit

如果某个进程正在运行,例如用户通过任务管理器意外终止或计算机重新启动(因此强制终止了进程),那么我该如何注册一个事件,该进程将在完全终止之前执行某些任务?

我尝试失败的是:

from signal import signal
from signal import SIGTERM

def foo():
    print('hello world')

if __name__ == '__main__':
    signal(SIGTERM, foo)
    while True:
        pass

我将从命令行运行此命令,然后导航到任务管理器并结束任务,但是从未调用foo

1 个答案:

答案 0 :(得分:1)

基于对Can I handle the killing of my windows process through the Task Manager?的回答-任务管理器似乎使用不可屏蔽的信号(等同于Linux的SIGKILL)杀死了进程。这意味着您无法抓住它。

other signals you can catch in Windows,例如SIGBREAKSIGCHLDCTRL_C_EVENTCTRL_BREAK_EVENT,但我想任务管理器不会使用任何终止符一个过程。