https://github.com/bvdeenen/otp_super_nukes_allで簡単なテストケースを設定しました。これは、otp application:stop() が、リンクされていないものも含め、その子によって生成されたすべてのプロセスを実際に強制終了することを示しています。
テスト ケースは、プレーンな erlang プロセス (par_worker として登録) を生成する 1 つの gen_server (par として登録) と、プレーンな erlang プロセス (child_worker として登録) も生成する gen_server (reg_child として登録) で構成されます。application:stop(test_app) を呼び出すと、'par' gen_server では通常の終了が行われますが、他のすべてのサーバーでは exit(kill) が行われます!
これは公称動作ですか?もしそうなら、それはどこに文書化されていますか?無効にすることはできますか? アプリケーションが終了しても、gen_server (リンクではない) から生成したプロセスを存続させたいと考えています。
ありがとう
バート・ヴァン・ディーネン