SIGTERM vs SIGKILL
kill
will send SIGTERM signal
- may stop OR not.
- may be ignored.
kill -9 will send SIGKILL signal
- carries little more weight than SIGTERM
- 9 indicates SIGKILL- CANNOT be ignored by process
- SIGKILL directly goes to the init process.
- init will stop the process.
Processes into "uninterriptible sleep"(D state) cannot be killed by kernel either. Reboot is required.
SIGKILL: Terminates a process immediately. This signal cannot be handled
(caught), ignored or blocked. (The "kill -9" command in linux generates
the same signal).
SIGTERM: Terminates a process immediately. However, this signal can be
handled, ignored or caught in code. If the signal is not caught by a
process, the process is killed. Also, this is used for graceful
termination of a process. (The "kill" command in linux if specified
without any signal number like -9, will send SIGTERM)
SIGINT: Interrupts a process. (The default action is to terminate
gracefully). This too, like, SIGTERM can be handled, ignored or caught.
The difference between SIGINT and SIGTERM is that the former can be sent
from a terminal as input characters. This is the signal generated when a
user presses Ctrl+C. (Sidenote: Ctrl+C denotes EOT(End of Transmission)
for (say) a network stream)
SIGQUIT: Terminates a process. This is different from both SIGKILL and
SIGTERM in the sense that it generates a core dump of the process and
also cleans up resources held up by a process. Like SIGINT, this can
also be sent from the terminal as input characters. It can be handled,
ignored or caught in code. This is the signal generated when a user
presses Ctrl+\.
SIGSTP: Suspends a process. This too, can be handled, ignored or
blocked. Since it does not terminate the process, the process can be
resumed by sending a SIGCONT signal. This signal can be generated by
pressing Ctrl+Z. (Sidenote: Ctrl+Z stands for substitute character which
indicates End-of-File in DOS)
SIGHUP: (From Wikipedia): Hangs up a process when the controlling
terminal is disconnected. This especially relates to modem/dial in
connections. A process has to explicitly handle this signal for it to
work. A good use is to "poke" a process and letting the process (as
defined by the programmer) decide what to do with the signal is
described
here. Hence, SIGHUP can be handled,ignored or caught. This is the signal generated when a user presses Ctrl+D.
Link: http://programmergamer.blogspot.in/2013/05/clarification-on-sigint-sigterm-sigkill.html