В Python 2.5 нет API для этого, но вы можете просто:
import atexit
atexit._exithandlers = []
в ваших дочерних процессах - если вы знаете, что у вас установлен только один обработчик выхода, а другие обработчики не установлены. Однако следует помнить, что некоторые части stdlib (например, logging
) регистрируют обработчики atexit
. Чтобы не попирать их, вы можете попробовать:
my_handler_entries = [e for e in atexit._exithandlers if e[0] == my_handler_func]
for e in my_handler_entries:
atexit._exithandlers.remove(e)
где my_handler_func
- обработчик atexit
, который вы зарегистрировали, и это должно удалить вашу запись, не удаляя другие.