私はただ興味があります。killのマニュアルページには、QUIT、別名シグナル#3が「コア」シグナルであると記載されています。Javaプロセスの場合、スレッド情報をダンプするだけのようです。それで、QUITは誤称ですか?JVMがスレッドをダンプする単一の3ハンドラーを実装しているだけですか?
質問する
8911 次
2 に答える
9
QUIT は間違いなくJava の誤称です。ただし、アプリケーションがシグナルのハンドラーのデフォルトの動作を変更できる場合、その引数により、シグナル名は誤った名前になる可能性があります。
実際には、UNIX シグナル名とその実際の動作との対応は、常に少しあいまいで希薄なものでした。ただし、開発者はこの「問題」に 30 年以上対処してきましたが、実際の問題はありませんでした。
そして、はい、Java スレッド スタック ダンプの動作は JVM によって実装されます。デフォルトの UNIX / LINUX の動作は、他の要因によって禁止されていない限り、プロセスのメモリ ダンプを作成することです。
于 2012-08-14T21:33:23.273 に答える
6
はい、JVM は #3 シグナルをキャプチャしてスレッドをダンプします。デフォルトでは、通常の UNIX プロセスの場合、コアをダンプし (つまり、プロセスのメモリ スナップショットを取得してファイルに書き込みます)、終了します。
Java の場合、これはあまり役に立たないため、代わりにスレッド ダンプを行います。
于 2012-08-14T21:17:36.183 に答える