Python处理系统关闭

Python处理系统关闭,python,windows,events,multiprocessing,shutdown,Python,Windows,Events,Multiprocessing,Shutdown,我有一个多处理的python应用程序,它在windows上以EXE运行。在选择关闭操作系统时,应用程序会抛出大量异常,这是进程关闭的结果 有没有办法通过windows捕获系统关闭请求,以便我自己处理多进程关闭的问题?一页建议使用win32api.SetConsoleCtrlHandler: “当windows关闭时,比如有人按下电源按钮时,我需要做一些事情。我相信这是一条窗口消息,WM_QUERYENDSESSION或WM_ENDSESSION。我在python中找不到任何方法来捕捉它。atex

我有一个多处理的python应用程序,它在windows上以EXE运行。在选择关闭操作系统时,应用程序会抛出大量异常,这是进程关闭的结果

有没有办法通过windows捕获系统关闭请求,以便我自己处理多进程关闭的问题?

一页建议使用
win32api.SetConsoleCtrlHandler

“当windows关闭时,比如有人按下电源按钮时,我需要做一些事情。我相信这是一条窗口消息,WM_QUERYENDSESSION或WM_ENDSESSION。我在python中找不到任何方法来捕捉它。atexit()不起作用。使用信号模块捕捉SIGBREK或SIGTERM也不起作用。”
您可能能够使用win32api.SetConsoleCtrlHandler并捕获发送到控制台的CTRL\u SHUTDOWN\u事件


另请参见,其中说,“当使用win32api.setConsoletrlHandler()时,我能够从Windows接收关闭/注销/etc事件,并完全关闭我的应用程序”等等。

当“Windows”关闭时,应用程序会引发什么异常?它会引发与管道不可写和io错误有关的异常。基本上,应用程序是多进程的,我认为每个进程在不同的时间获得shutdown命令,因此我需要处理shutdown命令,以便能够进行一些优雅的终止。checkout python的
子进程
模块可能重复的