[Source]:http://web.archive.org/web/20080801151452/http://speculation.org/garrick/kill-9.html
Most programs require some sort of cleanup when it exits. These programs setup
a signal handler to perform these cleanup duties as a result of SIGTERM and
SIGINT. They would setup a signal handler for SIGKILL if they could, but
SIGKILL is untrappable.
If a program decided to trap the TERM or INT signals, then it would most likely
delete any temporary files, shutdown sockets, remove shared memory segments,
close open files, or some other task. For instance, MySQL needs to flush data
to disk and close its database files. Killing MySQL with -9 will corrupt your
databases. Most user apps that work on some binary formatted data files
require temporary files, using kill -9 on these apps would leave around these
temporary files. Network daemons need to flush their logs and properly
shutdown Internet sockets so that clients aren't left hanging. Killing your
web browser can corrupt your bookmarks file, cache files, leave temp files in
/tmp (remember that 20MB mpeg you clicked on? yah, it's still sitting in /tmp)
Using kill -9 on a process is like just hitting the power button on your
running PC. You already know that powering off a running PC can damage your
filesystem because of run-time inconsistent data, why would you do the same
thing to your applications? You risk the _exact same_ data corruption.
Therefore, so that your important applications may close themselves, it is very
important you follow this procedure when killing them:
kill pid (sends a TERM, wait 5 seconds)
kill pid (yes, try again, wait 5 seconds)
kill -INT pid (wait for it)
kill -INT pid (damn, still not dead?)
kill -KILL pid (same thing as -9)
kill -KILL pid (something is wrong)
If the process is still running, then stop sending it signals. It's either
stuck in I/O wait or it's Defunct. '
ps auxw | grep processname', if you see
it's in state D, then kill its parent process (the 3rd column of '
ps -ef' is the parent pid). If it's in I/O wait, then you have a deeper system problem.
Most home users will never have this problem.