jps ツールは、ターゲットシステム上で計測された HotSpot Java 仮想マシン (JVM) を一覧表示します。このツールで表示できるレポート情報は、アクセス権を持った JVM に関するものに限定されます。(jps - Java 仮想マシンプロセスステータスツール -)というから、
起動中のTomcatのPIDを知りたくてjpsコマンドを実行したら。
$ jpsjpsコマンドのプロセスしか結果に表示されない。 ググったところ、jpsコマンドでTomcatのプロセスが表示されない場合の対処方法がすぐ見つかった。
8960 Jps
jpsコマンドはjavaアプリケーションが出力するtempファイルからプロセス情報を拾っているとのこと。
Windowsだと下記ディレクトリにPIDがファイル名のファイルが生成されていた。
C:\Users\[ログオンユーザ名]\AppData\Local\Temp\hsperfdata_[ログオンユーザ名]
で、Tomcatはと言うと、システムプロパティ:java.io.tmpdirで指定したディレクトリにPIDファイルを出力する。デフォルトだと $CATALINA_HOME\temp になる気がする…、未確認。
JVMの起動オプションで出力先をjpsの確認先にしてやり、Tomcatを再起動すると…
-Djava.io.tmpdir=C:\Users\[ログオンユーザ名]\AppData\Local\Temp\hsperfdata_[ログオンユーザ名]
jpsコマンドでTomcatのPIDが表示されることを確認。
$ jps
13212 Bootstrap
8960 Jps
Tomcat以外にも独自のファイルを作成するjavaアプリケーションはありそう。
【環境】
JDK 6.0.45Tomcat 6.0系(マイナーバージョン未確認)