Important: This document may not represent best practices for current development. Links to downloads and other resources may no longer be valid.
Signals are software interrupts that can be invoked on a specified process. The default signal handling behavior (provided by the system) usually terminates the process immediately on receipt of a signal. A process can override this behavior by installing a signal handler routine.
The most typical use of signals is by the kernel, which uses signals to notify a process of exceptional conditions such as invalid address errors and divide-by-zero errors. Another typical use is the command-line
kill tool, which is capable of sending any user-specified signal to a process, though the most common use is to terminate a process with a hang-up signal (
Because signals are complex to use effectively and they tend to behave differently (sometimes unreliably) on different operating systems, you should generally avoid installing signal handlers for your own applications. The default system handler usually provides the most appropriate response for a given signal. If you do want to handle signals in your application, see the
signal man page for basic information about the signals that may be sent.