valid,invalid

関心を持てる事柄について

jpsコマンドでTomcatのプロセスが表示されない


jps ツールは、ターゲットシステム上で計測された HotSpot Java 仮想マシン (JVM) を一覧表示します。このツールで表示できるレポート情報は、アクセス権を持った JVM に関するものに限定されます。(jps - Java 仮想マシンプロセスステータスツール -
というから、
起動中のTomcatのPIDを知りたくてjpsコマンドを実行したら。
$ jps
8960 Jps
jpsコマンドのプロセスしか結果に表示されない。 ググったところ、jpsコマンドでTomcatのプロセスが表示されない場合の対処方法がすぐ見つかった。

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.45
Tomcat 6.0系(マイナーバージョン未確認)