November 10, 2013, 5:15 PM — Signals are software interrupts that are sent to programs to inform them that some important event has occurred. The events themselves might be requests from users or indications that a system problem (such as a memory access error) has occurred. The most commonly sent signals terminate a process. One called "SIGTERM" is sent whenever you issue a kill command with only its process ID as an argument. When you add a -9 (SIGKILL), you are sending a more forceful request that may not give the process in quetion any time to close files it has open or do any other type of housekeeping.
Signals can be sent to processes using the kill command, but this is not the only way that this occurs. When you issue a ^c command to end a foreground process, you are sending a signal 2 (SIGINT) to the process. When you ^d to log out or exit a shell, you are sending a sending a signal 3 (SIGQUIT). Signal 1 (SIGHUP) sends a signal to a process requesting that it reread its configuration file, but keep running.