The -9 (or -KILL) argument to kill(1) should never be used on Unix systems, except as a very last resort. The KILL signal does not allow a process to run any cleanup code, which means blasting away with kill -9 may leave child processes of a parent orphaned, temporary files open, shared memory segments active, and sockets busy. This leaves the system in a messy state, and could lead to unanticipated and hard to debug problems.
#kill pid this will only suspend the pid, menawhile kill -1 pid will restart the process
for better killing process, use this steps $ kill pid $ kill -INT pid $ kill -HUP pid $ kill -KILL pid
or if you know the application and want to kill entire pid of that particular application $killall application_name [ August 14, 2006: Message edited by: Syedz -X- ]
sends the SIGKILL signal to the process whose process ID is 100 and to all processes whose process group ID is 165, assuming the sending process has permission to send that signal to the specified processes, and that they exist.
-s signal_name Specifies the signal to send, using one of the sym- bolic names defined in the <signal.h>