3

erlangアプリケーションがあります。私はそれを実行します、それは大丈夫です、すべて正常です。アプリケーションでerlangシェルを強制終了するとCtrl+C、アプリケーションも停止しました。これは正しい動作ですが、どうすればこの瞬間を捉えることができますか?アプリケーションが停止したとき、通常、またはエラーが発生したときに、いくつかのリソースをクリアする必要があります。でリソースをクリーンアップしようとしましたgen_server:terminateが、erlangシェルを強制終了すると実行されませんでした。アプリケーションが停止/強制終了された瞬間をどこでキャッチできますか?

ありがとうございました。

4

1 に答える 1

3

あなたがそうするとき、^CあなたはErlangシェルを殺しているのではなく、Erlangシステム全体、OSプロセス全体を殺しているのです。その後、すべてのアーランは死んでいます。何をしたいですか?制御された方法でシステム全体を停止したい場合は、を使用してinit:stop/0/1ください。まず、すべてのアプリケーションとその監視ツリーを停止して、動作を適切に終了できるようにします。

于 2013-02-12T17:24:12.840 に答える