Note: This user guide is no longer maintained. For information about any updates that relate to this guide after service refresh 10, fix pack 25, see the following support document: IBM SDK, Java Technology Edition, Version 7: Current news
Signals used by the JVM
The types of signals are Exceptions, Errors, Interrupts, and Controls.
Table 1 shows the signals that are used
by the JVM. The signals are grouped in the table by type or use, as
follows:
- Exceptions
- The operating system synchronously raises an appropriate exception signal whenever an unrecoverable condition occurs.
- Errors
- The JVM raises a SIGABRT if it detects a condition from which it cannot recover.
- Interrupts
- Interrupt signals are raised asynchronously, from outside a JVM process, to request shut down.
- Controls
- Other signals that are used by the JVM for control purposes.
Signal Name | Signal type | Description | Disabled by -Xrs | Disabled by -Xrs:sync |
---|---|---|---|---|
SIGBUS (7) | Exception | Incorrect access to memory (data misalignment) | Yes | Yes |
SIGSEGV (11) | Exception | Incorrect access to memory (write to inaccessible memory) | Yes | Yes |
SIGILL (4) | Exception | Illegal instruction (attempt to call an unknown machine instruction) | Yes | Yes |
SIGFPE (8) | Exception | Floating point exception (divide by zero) | Yes | Yes |
SIGABRT (6) | Error | Abnormal termination. The JVM raises this signal whenever it detects a JVM fault. | Yes | Yes |
SIGINT (2) | Interrupt | Interactive attention (CTRL-C). JVM exits normally. | Yes | No |
SIGTERM (15) | Interrupt | Termination request. JVM will exit normally. | Yes | No |
SIGHUP (1) | Interrupt | Hang up. JVM exits normally. | Yes | No |
SIGQUIT (3) | Control | A quit signal for a terminal. By default, this triggers a Javadump. | Yes | No |
SIGTRAP (5) | Control | Used by the JIT. | Yes | Yes |
SIGRTMIN (32) | Control | Used by the JVM for internal control purposes. | No | No |
SIGRTMAX (64) | Control | Used by the SDK. | No | No |
SIGCHLD (17) | Control | Used by the SDK for internal control. | No | No |
Note: A number supplied after the signal name is the standard
numeric value for that signal.
Use the -Xrs (reduce signal usage)
option to prevent the JVM from handling most signals. For more information,
see Oracle's Java™ application
launcher page.
Signals 1 (SIGHUP), 2 (SIGINT), 4 (SIGILL), 7 (SIGBUS), 8 (SIGFPE), 11 (SIGSEGV), and 15 (SIGTERM) on JVM threads cause the JVM to shut down; therefore, an application signal handler should not attempt to recover from these unless it no longer requires the JVM.