The current openfire script uses kill to end a process. This fails under some circumstances (e.g. the process is under heavy load and unresponsive). For RedHat (and related), there is a function, killproc that will try to kill the process nicely and escalate all the way up to SIGKILL - this is more reliable in practice.
Also, the presence of a PID file is not desirable. When the process dies unexpectedly or it gets killed, the file is left behind so OF won't start until it is removed. A better way to handle this is to grep for PID.
Made the improvements to the script. Added a message when the script is not run as root, so that the user will know what's going on (it was exiting silently before).