Il y a quelque temps, je me suis retrouvé très confus par certains changements que j'ai trouvés en déplaçant les scripts Python de Linux vers OS X...
Sous Linux, si un script Python a appelé os.system(), et que le processus appelant est tué, le processus appelé sera tué en même temps.
Sous OS X, cependant, si le processus principal est tué, tout ce qu'il a lancé est laissé derrière.
Existe-t-il quelque chose dans OS X/Python qui me permette de modifier ce comportement ?
Cela pose des problèmes dans notre ferme de rendu, où les processus peuvent être tués à partir de l'interface graphique de gestion, mais le processus de niveau supérieur n'est en fait qu'une enveloppe. Ainsi, alors que la gestion de la ferme de rendu peut penser que le processus a disparu et que la machine est libérée pour une autre tâche, la tâche réelle à forte intensité de processeur est toujours en cours, ce qui peut entraîner d'énormes blocages.
Je sais que je pourrais écrire plus de logique pour attraper le signal d'arrêt et le transmettre aux processus enfants, mais j'espérais que cela pourrait être quelque chose qui pourrait être activé à un niveau inférieur.