objectif
Enregistrer des callbacks de cleanup garantis à l’arrêt normal.
code minimal
import atexit
state = {"called": False}
def cleanup():
state["called"] = True
atexit.register(cleanup)
# Simuler la sortie en appelant manuellement
cleanup()
print(state["called"]) # attendu: True
utilisation
import atexit
called = {"x": False}
atexit.register(lambda: called.update(x=True))
print(True)
variante(s) utile(s)
import atexit
def bye(name): pass
atexit.register(bye, "world")
print(True)
notes
- Les callbacks ne s’exécutent pas sur un crash dur (kill -9).
- L’ordre d’appel est LIFO (dernier enregistré, premier appelé).