I have a Tomcat 7
running in Linux that I start via $CATALINA_HOME/bin/startup.sh
and shutdown via $CATALINA_HOME/bin/shutdown.sh
I also had the same problem. There was a ThrottledThreadPoolExecutor in my application that wasn't getting shutdown. When I shut it down properly, tomcat would stop cleanly. In order to figure out the problem, I had to remove all the apps from my tomcat webapps
directory and then add them one by one and see which one was causing the problem