Linux Signals: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
No edit summary
Line 9: Line 9:
=Overview=
=Overview=


Signals are numeric messages sent to running applications by the operating system, other applications, or the user. A signal is managed in a cascading manner. It's sent to the application or script, then if the application doesn't have a specific handler, it's pushed back to the shell or operating system. Some signals can't be managed within individual apps: for example SIGKILL is caught by the operating system and immediately kills the running application.
Signals are numeric messages sent to running applications by the operating system, other applications, or the user. A signal is managed in a cascading manner. It's sent to the application or script, then if the application doesn't have a specific handler, it's pushed back to the shell or operating system. Some signals can't be managed within individual apps: for example SIGKILL is caught by the operating system and immediately kills the running application. For the rest of the signals, processes may or may not intercept the signals.


To send a specific signal to a process:
To send a specific signal to a process:

Revision as of 03:14, 3 May 2018

External

Internal

Overview

Signals are numeric messages sent to running applications by the operating system, other applications, or the user. A signal is managed in a cascading manner. It's sent to the application or script, then if the application doesn't have a specific handler, it's pushed back to the shell or operating system. Some signals can't be managed within individual apps: for example SIGKILL is caught by the operating system and immediately kills the running application. For the rest of the signals, processes may or may not intercept the signals.

To send a specific signal to a process:

kill -<signal-value> <pid>
kill -2 3345

Signals

SIGHUP (1)

POSIX signal. Hangup.

Hangup is the signal that is sent to the process when the terminal closes on a foreground process.

Also see:

nohup
httpd Restart Now

SIGINT (2)

Sends the process an interrupt. Guaranteed to be present on all systems.

bash sends SIGINT to the process running in foreground when Ctrl-C is pressed.

SIGQUIT (3)

Will trigger a Java virtual machine to generate a thread dump.

SIGILL (4)

The SIGILL signal is sent to a process when it attempts to execute an illegal, malformed, unknown, or privileged instruction.

SIGTRAP (5)

SIGFPE (8)

SIGKILL (9)

POSIX. Kill the process. The signal cannot be caught or ignored. Guaranteed to be present on all systems.

SIGUSR1 (10)

Also see:

httpd Graceful Restart

SIGSEGV (11)

SIGUSR2 (12)

SIGPIPE (13)

SIGALRM (14)

SIGTERM (15)

Also see:

httpd Stop Now

SIGSTKFLT (16)

SIGCHLD (17)

SIGCONT (18)

POSIX. Continue executing, if stopped. This is the signal send to a stopped application by the fg command.

Also see:

Suspending JVM Execution

SIGSTOP (19)

POSIX. Stop executing. The signal cannot be caught or ignored.

Also see:

Suspending JVM Execution

SIGTSTP (20)

Suspends a process executing in foreground. bash sends SIGTSTP to the process running in foreground when Ctrl-Z is pressed.

SIGTTIN (21)

SIGTTOU (22)

SIGURG (23)

SIGXCPU (24)

SIGXFSZ (25)

SIGVTALRM (26)

SIGPROF (27)

SIGWINCH (28)

Also see:

httpd Graceful Stop

SIGIO (29)

SIGPWR (30)

SIGSYS (31)

SIGRTMIN (34)

Signals in Go

Signals in Go

Signals and bash

Handling Signals in bash