krishna
krishna

Reputation: 11

tomcat shut down through process id (windows)

I want to stop the Tomcat process by its process ID. How can I get the Tomcat process ID using Java?

Upvotes: 1

Views: 8182

Answers (3)

Stephen C
Stephen C

Reputation: 718926

I'm not sure if this helps for the Windows case, but the catalina.sh script that you can use on Linux / UNIX can be told to store the PID of the process in a file. You just need to set the CATALINA_PID environment variable to the pathname of your PID file. When you've done this, running catalina.sh stop -force will attempt a clean shutdown, and if that fails it will kill the Tomcat process.

Upvotes: 2

Codemwnci
Codemwnci

Reputation: 54884

There is no direct way to access the PID that I am aware of, however, someone has written a great Blog on how to do this indirectly. Here is a link to his 5 different options.

http://blog.igorminar.com/2007/03/how-java-application-can-discover-its.html

The nicest option is this one...

Using the java management and monitoring API (java.lang.management):

ManagementFactory.getRuntimeMXBean().getName();

returns something like: 28906@localhost where 28906 is the PID of JVM's process, which is in fact the PID of my app.

This hack is JVM dependent and I tested it only with Sun's JVM.

From Javadocs for getName() method of RuntimeMXBean: Returns the name representing the running Java virtual machine. The returned name string can be any arbitrary string and a Java virtual machine implementation can choose to embed platform-specific useful information in the returned name string. Each running virtual machine could have a different name.

Upvotes: 1

danny.lesnik
danny.lesnik

Reputation: 18639

You can execute TASKLIST.EXE in java and garb the result. the second option I found intresting is to run Service stop command from java.

Hope it helps.

Upvotes: 0

Related Questions