JPS命令 幹啥的,為啥有的時候沒有用?

jps 是在linux系統中獲取該用戶已經啟動了那些java相關的程序,並將這些程序按進程ID 給列出,這個命令可以比較方便的在linux 下管理java相關的程序。

但是有的時候我們明明已經啟動了java 程序,再用jps 命令去查看時,會發現jps 根本沒有列出相應的進程ID,但是用ps -ef|grep java 卻發現有相關進程,這是怎麼回事了?


這個就要說明一下jps的程序的數據來源,它是通過檢查這個文件/tmp/hsperfdata_用戶名/pid下來進行顯示的。

jdk只要被啟動,則應該在這個文件/tmp/hsperfdata_用戶名/下保存進程ID信息。

如果這個文件/tmp/hsperfdata_用戶名/不存在,或則 讀寫權限沒有,那麼jps 則失效。

通過我自己的機器發現/tmp/hsperfdata_用戶名/權限有一定的問題,所以更改目錄權限,通過重啟java程序,再使用jps命令則發現問題得到解決


JPS命令 幹啥的,為啥有的時候沒有用?

jps文件


JPS命令 幹啥的,為啥有的時候沒有用?

文件中的pid


分享到:


相關文章: