python 捕获命令窗口终结信号并处理(event handler)

本文地址:https://www.cnblogs.com/tujia/p/15418512.html

 

主要用到的 signal 信息处理库,不过这个库在 windows 上不好使,windows 上要用 win32api

 

直接上代码吧:

import time
import platform


def on_term():
    print('closing...')
    time.sleep(2)


def register_exit_handler():
    if platform.system() == 'Windows': # windows 平台
        import win32api
        win32api.SetConsoleCtrlHandler(lambda signum: signum == 2 and on_term(), True)
    else: # Unix 平台
        import signal
        signal.signal(signal.SIGTERM, lambda signum, frame: on_term())


if __name__ == '__main__':  
    print('running...')
    register_exit_handler()
    
    while True:
        pass

signal 文档:signal --- 设置异步事件处理程序 — Python 3.8.12 文档

win32api 文档:tjguk/pywin32-docs: HTML version of pywin32 docs from chm (github.com)

 

本文地址:https://www.cnblogs.com/tujia/p/15418512.html


完。

 

posted @ 2021-10-17 22:23  Tiac  阅读(573)  评论(0编辑  收藏  举报