In Linux, signals are a form of inter-process communication (IPC) used to notify a process of an event that has occurred. They are a limited form of communication because they carry only a small amount of information: the signal number.

Think of signals as software interrupts. When a particular event occurs (like a user pressing Ctrl+C, a child process exiting, or a timer expiring), the operating system sends a signal to the affected process(es). The process can then be configured to react to this signal in a predefined way, such as terminating, ignoring the signal, or executing a specific signal handler function

Signal NameNumber (Default Action)Description
SIGHUP1 (Terminate)Hangup detected on controlling terminal or process death.
SIGINT2 (Terminate)Interrupt from keyboard (Ctrl+C).
SIGQUIT3 (Core Dump)Quit from keyboard (Ctrl+).
SIGILL4 (Core Dump)Illegal Instruction.
SIGABRT6 (Core Dump)Abort signal from abort() function.
SIGFPE8 (Core Dump)Floating-point exception.
SIGKILL9 (Terminate)Kill signal (cannot be caught or ignored).
SIGSEGV11 (Core Dump)Invalid memory reference (segmentation fault).
SIGPIPE13 (Terminate)Write to a pipe with no reader.
SIGALRM14 (Terminate)Timer signal from alarm() or setitimer().
SIGTERM15 (Terminate)Termination signal (graceful termination request).
SIGCHLD17 (Ignore)Child process stopped or terminated.
SIGCONT18 (Continue)Continue process if stopped.
SIGSTOP19 (Stop)Stop process (cannot be caught or ignored).
SIGTSTP20 (Stop)Stop signal from keyboard (Ctrl+Z).
SIGTTIN21 (Stop)Background process trying to read from controlling terminal.
SIGTTOU22 (Stop)Background process trying to write to controlling terminal.
SIGUSR130/10/16 (Terminate)User-defined signal 1.
SIGUSR231/12/17 (Terminate)User-defined signal 2.