kill is most often used without an argument or with -9,
to kill a process off. But it can also be used to send various other signals
to a process. Some are variations on process termination, but you can
also get information about or out of processes.
kill -0 pid: This doesn't actually kill the process, just
returns 0 (success) if the process exists and 1 (failure) if not. The
command itself will not give you any output — you have to look at the
exit code, using echo $? to get the information. So as
kill -0 1685; echo $?
will output 0 if process 1685 exists, and 1 if it doesn't. This can also
be useful in shell scripts if you have a process number recorded and wish
to check if it's still running.
kill -9 pid: You probably already know that you can terminate the
process WITH EXTREME PREJUDICE. kill -KILL does the same thing
and has the advantage of looking more vicious. The downside is that it is an extra couple of characters to type.
kill -HUP pid: Restarts the process.
kill -INT pid: Another way of killing the process, this time
by interrupting it. It is a useful halfway house between kill and
kill -ABRT pid: Stops your program and gets it to dump core
if possible/appropriate. (kill -6 is a synonym.)
This can be useful if a process is misbehaving, as it means that you may get debug information.