3
我对在Python应用程序中安装退出处理程序的许多不同方式有点困惑。有atexit.register()
和signal.signal(SIG, handler)
,但我不确定哪一个是我的情况下使用的权利。Python退出处理程序
我有一个从命令行启动的主进程,它产生许多其他子进程作为守护进程。然后它会等待,直到完成。子进程运行一个无限循环(可以通过一个标志突破,但不知道如何触发该标志)。当主进程通过CTRL + C关闭或接收到kill信号时,我想在子进程中调用一些清理代码。
给出2个退出处理程序方法(或者可能还有更多),实现此目的的最佳方式是什么?
它会工作到信号挂钩中的'sys.exit()'并将cleaup留给'atexit'吗?这不应该满足所有情况(正常退出和强制退出)吗?我怎样才能抓住'SIGKILL'(如果有的话)? – orange