我在Ubuntu 10.10上運行Tomcat 6.0.31並使用tge Sun JDK(java-6-sun)。雖然tomcat正在運行,但在運行jps
(Java虛擬機進程狀態工具)時,其進程並未顯示出來。我看到的唯一輸出是jps流程本身的pid。爲什麼Tomcat進程不顯示?jps沒有顯示Tomcat進程
回答
您可能正在運行到Bug 7009828:
在Java 6更新23和Java 6更新24,Java的決定在什麼地方是需要,對於jps
,jconsole
和jvisulavm
在本地檢測到某些文件時考慮java.io.tmpdir
財產運行JVM。這意味着每個有此係統屬性定義爲默認值(/tmp
)以外的JVM實例對於這些工具都是不可見的。
Tomcat安裝特別默認將此屬性設置爲其安裝temp
文件夾。
所以:要麼升級到Java 6更新25或更高版本(其中的bug是固定的)或-J-Djava.io.tmpdir=/path-to-tomcat-installation/temp
開始jps
。
難道這是由於/tmp/hsperfdata_$USER
目錄被您的系統上運行的cron作業刪除?有關更多信息,請參閱http://www.semicomplete.com/blog/geekery/jps-shows-nothing-useful.html。
對我來說,這似乎也是個問題。長時間運行的進程從'jps'輸出中消失,cron作業似乎是罪魁禍首。爲什麼Java設計人員在決定將這些進程文件放在'/ tmp'目錄時不會考慮這個問題? – ADTC 2014-02-20 06:44:43
檢查您的vm參數是否存在-XX:-UsePerfData
。
如果是這樣,將其刪除,並重新啓動JVM
檢查/ tmp目錄的所有權,像這樣/ hsperfdata_ *目錄:
ls -ld /tmp/hsperfdata_*
每個目錄將擁有該Java中的用戶擁有處理。如果您感興趣的流程不屬於您,那麼數據將無法訪問。但是,如果以root身份運行jstatd,則它將能夠訪問所有數據。
sudo jstatd <rest of options...>
- 1. JPS只顯示JPS
- 2. 爲什麼JPS不顯示進程正在運行?
- 3. NSProgressIndicator沒有顯示進度
- 4. QProgressBar沒有顯示進度?
- 5. Tomcat沒有響應,threadump顯示一個被阻塞的線程
- 6. Tomcat沒有拿到類文件 - 沒有顯示JSP文件
- 7. 任何人都可以說沒有在jps中顯示hadoop惡魔的原因?
- 8. Joomdle課程沒有顯示
- 9. PyCharm - 本地進程窗口沒有顯示程序名稱
- 10. Android有沒有辦法在adb中顯示進程優先級?
- 11. 有沒有辦法讓Tomcat 7顯示servlet映射?
- 12. 進度對話框沒有顯示
- 13. jquery-ui進度條沒有顯示
- 14. 沒有顯示進度對話動畫?
- 15. jquery進度條沒有顯示
- 16. tomcat java.util.logging進程
- 17. 沒有顯示
- 18. 沒有顯示
- 19. 沒有顯示
- 20. 沒有顯示
- 21. 沒有顯示
- 22. 沒有顯示
- 23. 沒有顯示
- 24. 沒有顯示
- 25. 沒有顯示
- 26. 沒有顯示
- 27. 沒有顯示
- 28. 沒有顯示
- 29. 「heroku ps」顯示沒有進程正在運行
- 30. MAT:Eclipse沒有顯示任何正在運行的進程
您是否曾嘗試以根用戶身份運行jps?也許這是一個權限問題? – Pace 2011-06-09 04:07:01
對於較新的JVM,@Pace的評論指向了正確的答案:'jps -l'顯示了不同於'sudo jps -l'的進程列表。當它以root身份運行時,我必須使用'sudo'來查看Tomcat。 – Lambart 2018-01-04 01:03:04