Off the top of my head, I'd say that tomcat is ignoring TERM (15) signals (the default when you only provide a PID to the kill command). This is why 'kill $PID' seems not to work. It is likely ignoring HUP (1) and QUIT (3) signals too.
Quote:
is there any other way to get rid of this.
I'm not really sure what
this is that you are wanting to get rid of. The running process, the script, the need for kill -9?
I'll go on the assumption that you are wanting to cause a core dump which is not produced when using -9 (SIGKILL). Try using 'kill -6' (abort) -- I'd hope that the tomcat developers left this signal set to it's default value (terminate programme and generate a core dump).