Signal protocol
also: signals, IPC signals, Unix signals
A method of asynchronous communication in Linux where the kernel sends notifications (signals) to processes to interrupt them and trigger specific handlers. Signals are numbered events that can terminate, pause, or modify process behavior.
Signal protocol is the mechanism by which the Linux kernel communicates with running processes through numbered notifications called signals. When an event occurs—such as a user pressing Ctrl+C, a child process terminating, or a timer expiring—the kernel interrupts a process to deliver that signal.
Each signal has a default action (terminate, ignore, or stop the process) and a number (e.g., SIGTERM is 15, SIGKILL is 9). Processes can define custom signal handlers to catch signals and execute custom code instead of the default behavior. For example, a web server might catch SIGHUP to reload its configuration without restarting.
Common signals include SIGTERM (graceful termination), SIGKILL (forced kill, cannot be caught), SIGSTOP (pause), and SIGUSR1/SIGUSR2 (application-defined). Signal handlers are registered using the signal() or sigaction() system calls in C programs.