私は、OTPアプリケーションがあることを示してhttps://github.com/bvdeenen/otp_super_nukes_allで簡単なテスト・ケース設定しました:()実際にその子によってすべて生成されたプロセス、にリンクされていないものも含めを殺す停止します。Otpアプリケーション:stop(..)はspawn_linkされたプロセスだけでなく、生成されたプロセスをすべて終了させますか?
テストケースは、プレーンなerlangプロセス(par_workerとして登録)とgen_server(reg_childとして登録)を生成する1つのgen_server(parとして登録)から成り立ち、プレーンなプロセスを生成します。アプリケーション呼び出し:stop(test_app)は、 'par' gen_serverでは正常終了しますが、他のすべてでは終了(kill)します!
これは名目上の動作ですか?もしそうなら、それはどこに文書化されていますか?それを無効にすることはできますか?私は私のgen_server(リンクではない)からアプリケーションが終了したときに生き続けるために、プロセスを生成したい。
おかげ
バートバンDeenen
Thans、私もgroup_leaderを見つけました。それは私には分かりませんでしたが、私はたくさんのことを学びました!それは動作します: 'group_leader(whereis(init)、Pid)'は、私のプロセスを生き残らせます。複雑な理由から、実際のシステムで分散アプリケーションのアップグレードを行う必要があります。 –
偉大な、あなた自身の質問に答えることができますか、またはこれが正確な解決策/答えだった場合は、回答としてマーク:) – marcelog