Python出口处理程序

Python出口处理程序,python,process,exit,Python,Process,Exit,在Python应用程序中安装退出处理程序的许多不同方法让我有点困惑。有和,但我不确定哪一个是正确的使用在我的情况下 我有一个从命令行开始的主进程,它产生了许多其他子进程作为守护进程。然后它加入进程并等待它们完成。子进程运行一个无限循环(可以通过标志中断,但不确定如何触发)。我想在主进程通过CTRL+C关闭或收到kill信号时调用子进程中的一些清理代码 考虑到两种退出处理程序方法(或者更多),实现这一点的最佳方法是什么 这样注册的函数在解释器正常终止时自动执行 及 注意:当程序被Python未处理

在Python应用程序中安装退出处理程序的许多不同方法让我有点困惑。有和,但我不确定哪一个是正确的使用在我的情况下

我有一个从命令行开始的主进程,它产生了许多其他子进程作为守护进程。然后它加入进程并等待它们完成。子进程运行一个无限循环(可以通过标志中断,但不确定如何触发)。我想在主进程通过CTRL+C关闭或收到kill信号时调用子进程中的一些清理代码


考虑到两种退出处理程序方法(或者更多),实现这一点的最佳方法是什么

这样注册的函数在解释器正常终止时自动执行

注意:当程序被Python未处理的信号终止、检测到Python致命内部错误或调用os.\u exit()时,不会调用通过此模块注册的函数


因此,如果您想对信号做出反应,请使用
signal.signal

在信号挂钩中执行
sys.exit()
,并将cleaup保留到
atexit
?这不应该满足所有情况(正常退出和强制退出)吗?我如何捕获SIGKILL(如果有的话)?