表7-2 Oracle SolarisおよびLinuxで使用されるシグナル
シグナル | 説明 |
---|---|
|
これらのシグナルは暗黙的なNULLチェックの実装などに使用されます。 |
|
このシグナルは、Javaスタック・トレースを標準エラー・ストリームに出力するために使用されます。(オプション) |
|
これらのシグナルは、VMが異常終了したときにシャットダウン・フック・メカニズム( |
|
このシグナルは |
|
このシグナルは内部で使用されます。Oracle Solaris 10オペレーティング・システム以降は使用されません。(構成可能) |
|
HotSpot VMはこのシグナルを処理しません。かわりに、致命的エラー処理の後で |
シグナルの使用を減らすために-Xrs
オプションを指定すると、「オプション」としてタグ付けされたシグナルは使用されません。このオプションを使用すると、使用されるシグナルの数が減りますが、VMはSIGSEGV
などの基本的なシグナルのために独自のシグナル・ハンドラをインストールします。このオプションを指定すると、プロセスがSIGQUIT
、SIGTERM
、SIGINT
、またはSIGHUP
を受信した場合にシャットダウン・フック・メカニズムが実行されなくなります。VMが正常終了した場合(つまり、最後の非デーモン・スレッドが完了するか、System.exit
メソッドが呼び出されると)、シャットダウン・フックが予想どおり実行されます。
Oracle Solaris 8および9オペレーティング・システムでは、代替シグナルを使用するために-XX:+UseAltSigs
オプションを指定すると、「構成可能」としてタグ付けされたシグナルは置き換えられます。Oracle Solaris 10オペレーティング・システム以降では、オペレーティング・システムが(SIGJVM1
およびSIGJVM2
という名前の) 2つの追加シグナルを予約しているため、このオプションは無視されます。
Linuxでは、SIGUSR1
のハンドラをオーバーライドすることはできません。SIGUSR2
は、suspendとresumeを実装するために使用されます。ただし、SIGUSR2
の代わりに代替シグナルを使用するように指定することも可能です。これを行うには、_JAVA_SR_SIGNUM
環境変数を指定します。この環境変数を設定する場合は、SIGSEGV
およびSIGBUS
の最大より大きい値に設定する必要があります。