This table describes what each signal means.
Signal | Description | Default action |
---|---|---|
SIGABRT | Abnormal termination, issued by functions such as abort() | Kill the process and write a dump file |
SIGALRM | Alarm clock, issued by functions such as alarm() | Kill the process |
SIGBUS | Bus error, or a memory parity error (a QNX Neutrino-specific interpretation). If a second fault occurs while your process is in a signal handler for this fault, the process is terminated. | Kill the process and write a dump file |
SIGCHLD or SIGCLD | A child process terminated | Ignore the signal, but still let the process's children become zombies |
SIGCONT | Continue the process. You can't block this signal. | Make the process continue if it's STOPPED; otherwise ignore the signal |
SIGDEADLK | A mutex deadlock occurred. If a process dies while holding a non-robust mutex and no still-existing process has called SyncMutexEvent() to set up an event to be delivered when the mutex owner dies, the kernel delivers a SIGDEADLK to all threads that are waiting on the mutex without a timeout. The kernel also delivers this signal if an event has been set up but its target is the same process that has died and this process didn't call procmgr_guardian() to designate another process as the new parent to its children. Note that it's up to any guardian process to revive the mutex by calling SyncMutexRevive(), as the signal is not sent in this case. SIGDEADLK and SIGEMT refer to the same signal. Some utilities (e.g., gdb, ksh, slay, and kill) know about SIGEMT, but not SIGDEADLK. |
Kill the process and write a dump file |
SIGEMT | EMT instruction (emulation trap)
SIGDEADLK and SIGEMT refer to the same signal. Some utilities (e.g., gdb, ksh, slay, and kill) know about SIGEMT, but not SIGDEADLK. |
Kill the process and write a dump file |
SIGFPE | Floating point exception | Kill the process and write a dump file |
SIGHUP | Hangup; the session leader died, or the controlling terminal closed | Kill the process |
SIGILLa | Illegal hardware instruction. If a second fault occurs while your thread is in a signal handler for this fault, the process is terminated. | Kill the process and write a dump file |
SIGINT | Interrupt; typically generated when you press CtrlC or CtrlBreak (you can change this with stty) | Kill the process |
SIGIO | Asynchronous I/O | Ignore the signal |
SIGIOT | I/O trap; a synonym for SIGABRT | Kill the process |
SIGKILL | Kill. You can't block or catch this signal. | Kill the process |
SIGPIPE | Write on pipe with no reader | Kill the process |
SIGPOLL | System V name for SIGIO | Ignore the signal |
SIGPROF | Profiling timer expired. POSIX has marked this signal as obsolescent; QNX Neutrino doesn't support profiling timers or send this signal. | Kill the process |
SIGPWR | Power failure | Ignore the signal |
SIGQUIT | Quit; typically generated when you press Ctrl\ (you can change this with stty) | Kill the process and write a dump file |
SIGSEGV | Segmentation violation; an invalid memory reference was detected. If a second fault occurs while your process is in a signal handler for this fault, the process will be terminated. | Kill the process and write a dump file |
SIGSTOP | Stop the process. You can't block or catch this signal. | Stop the process |
SIGSYS | Bad argument to system call | Kill the process and write a dump file |
SIGTERM | Termination signal | Kill the process |
SIGTRAP | Trace trap | Kill the process and write a dump file |
SIGTSTP | Stop signal from tty; typically generated when you press CtrlZ (you can change this with stty) | Stop the process |
SIGTTIN | Background read attempted from control terminal | Stop the process |
SIGTTOU | Background write attempted to control terminal | Stop the process |
SIGURG | Urgent condition on I/O channel | Ignore the signal |
SIGUSR1 | User-defined signal 1 | Kill the process |
SIGUSR2 | User-defined signal 2 | Kill the process |
SIGVTALRM | Virtual timer expired. POSIX has marked this signal as obsolescent; QNX Neutrino doesn't support virtual timers or send this signal. | Kill the process |
SIGWINCH | The size of the terminal window changed | Ignore the signal |
SIGXCPU | Soft CPU time limit exceeded see the RLIMIT_CPU resource for setrlimit()) | Kill the process and write a dump file |
a One possible cause for a SIGILL signal is trying to perform an operation that requires I/O privileges. A thread can request these privileges by making sure the process has the PROCMGR_AID_IO ability enabled (see procmgr_ability()) and then calling ThreadCtl()) specifying the _NTO_TCTL_IO flag:
ThreadCtl( _NTO_TCTL_IO, 0 );