J'ai un script python nommé "prog.py". Je veux ajouter une fonctionnalité qui ouvre un nouveau processus qui surveille le fonctionnement du script en cours. Lorsque le script se termine, le processus reconnaît la terminaison et invoque une certaine fonction. Voici un pseudo-code:Création d'un processus en Python qui commence après la fin du processus principal
while (script is active):
sleep(1) # check its status once a second
func()
Avez-vous une idée pour le faire?
+1 pour la dernière phrase. Utilisez juste 'atexit', et ne vous occupez pas des processus à moins qu'il y ait une raison spécifique à cela. –
Le problème est avec la note suivante dans la documentation atexit: "Les fonctions enregistrées via ce module ne sont pas appelées lorsque le programme est détruit par un signal non géré par Python, lorsqu'une erreur interne fatale Python est détectée, ou lorsque os._exit() est appelé." Je suis à la recherche d'une solution qui fonctionne dans tous les cas de terminaison de script ... – CrazySynthax
@CrazySynthax: Dans ce cas, il serait encore plus simple de faire gérer le processus "principal" par le processus de contrôle plutôt que "processus engendrant un moniteur qui essaie ensuite de surveiller le processus principal à son tour. Le premier est un simple usage de «subprocess», le dernier implique généralement des étapes de détachement de processus spécifiques au système d'exploitation non portables et rigmarole. – ShadowRanger