I wouldn't rely on the pid file. I've had services die unexpectedly and leave pid files and lock files behind.
I would write a script that checks the output of ps for the presence of and state of the application, and then kick off the init script if it's missing, and kill and then restart it if it got zombied somehow.


