If you look at the man page for kill you'll see that it is really just
sending a signal to the process specified. You can send a signal by
name or by number. Each implementation of UNIX (AIX, HPUX, Solaris,
Darwin, etc.) has differences but they all support kill -9 or kill -s
KILL. Other options for kill are HUP, INT, QUIT, ABRT ans TERM. You
can also signal the process with things like Float Point Error (kill -
s SIGFPE), Illegal Instruction (kill -s SIGILL) or Bus Error (kill -s
SIGBUS) on some systems. I just see a lot of people use nothing but
kill -9. The kill command is much more powerful than that plus on
Enterprise systems, with a lot of state information remaining in
memory, doing a kill -9 can easily corrupt the system.
If your suspect your server is memory leaking or needs to be stopped
and started every so often have a look at TASKLIST and TASKKILL.
TASKLIST will give you the process id of the task you want to stop and
a simple TASKKILL /pid {process_id} will stop the task gracefully. You
can then use TASKLIST to confirm the task stopped. If it does not stop
you can use TASKKILL /F to forcefully kill it.
Another option is to use Task Scheduler to stop and start the server.
You can create a task in Task Scheduler which will kill the task
before starting it again. The first time the task starts it just runs
the server. Next time it tries to start it kills the current server
and starts a new one.
Darrell