J'ai mis en place un cas de test simple à l'adresse suivante https://github.com/bvdeenen/otp_super_nukes_all qui montre qu'une application otp:stop() tue en fait tous les processus créés par ses enfants, même ceux qui sont en cours d'exécution. non lié .
Le cas de test consiste en un gen_server (enregistré comme par) qui engendre un processus erlang simple (enregistré comme par_worker) et un gen_server (enregistré comme reg_child), qui engendre également un processus erlang simple (enregistré comme child_worker). L'appel à application:stop(test_app) provoque une terminaison normale sur le gen_server 'par', mais un exit(kill) sur tous les autres !
S'agit-il d'un comportement nominal ? Si oui, où est-il documenté et puis-je le désactiver ? Je veux que les processus que je crée à partir de mon gen_server (pas de lien) restent en vie lorsque l'application se termine.
Remerciements
Bart van Deenen