【问题标题】:Python detect kill requestPython检测终止请求
【发布时间】:2014-01-28 20:05:32
【问题描述】:

我有一个 python 3 脚本,它在启动时运行。它可以与一些资源一起使用,我希望它在退出时免费。

如果我用kill -6 $PID 杀死它,我该如何管理该脚本将退出。

或者关于如何发送退出命令并在脚本中检测它的任何其他想法。

【问题讨论】:

    标签: python python-3.x exit


    【解决方案1】:

    signal 模块正是您要寻找的。​​p>

    import signal
    
    def handler(signum, frame):
        print('Signal handler called with signal', signum)
    
    signal.signal(signal.SIGABRT, handler)
    

    在处理函数中,您可以使用sys.exit() 终止。

    但是,更常见的是使用 SIGINT(在终端中按 CTRL+C 时会发生这种情况)或 SIGTERM 来终止程序。如果您没有清理代码,则不需要编写一行代码来处理 SIGINT - 默认情况下,它会引发 KeyboardInterrupt 异常,如果没有被捕获(这就是为什么你应该永远不要使用空白的except: 语句),导致你的程序终止。

    【讨论】:

    • 我决定将 SIGINT 与 KeyboardInterrupt 一起使用。非常感谢
    猜你喜欢
    • 2011-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-03
    • 2014-05-22
    • 2019-02-03
    相关资源
    最近更新 更多