因此,我運行一個使用嵌入式jetty和maven app-assembler插件的web服務器。當我直接調用app-assembler應用程序(以root身份運行)時,服務器啓動正常。即使在nohup下運行,Web服務器也完全正常啓動。Java服務器掛在CentOS啓動5
當我將app-assembler腳本註冊爲init.d腳本(Runlevels 235/Start pri 98/Stop pri 20)並使用service命令運行init.d腳本時,Web服務器在啓動過程中會掛起。
應用程序掛起的地方是在Struts 2約定插件中的類路徑掃描期間。
如果我殺了使用「殺-QUIT」 web服務器,代碼看起來是停留在Unix文件系統:
"main" prio=10 tid=0x09add800 nid=0xb33 runnable [0xb7361000]
java.lang.Thread.State: RUNNABLE
at java.io.UnixFileSystem.getBooleanAttributes0(Native Method)
at java.io.UnixFileSystem.getBooleanAttributes(UnixFileSystem.java:228)
at java.io.File.isDirectory(File.java:754)
我做了一些研究,似乎有可能是性能問題與NFS,Java和文件系統訪問。
我遇到的問題是我們沒有在我們的服務器上運行NFS,並且據我所知我們正在以相同的方式,由同一用戶運行該應用程序。
即使模仿服務命令的工作方式(在腳本啓動之前運行'env -i'),直接運行腳本也不會掛起。
尋找任何建議或指針來解決這個問題,或任何方式來解決它。
更新(4/8/12)
我使用Sun(甲骨文)JDK 1.6.0_31
/usr/java/latest/bin/java -version
java version "1.6.0_31"
Java(TM) SE Runtime Environment (build 1.6.0_31-b04)
Java HotSpot(TM) Server VM (build 20.6-b01, mixed mode)
你在使用OpenJDK嗎? – Quaternion 2012-04-08 23:55:27
我正在使用Sun JDK。更新的問題包括這個信息 – ArcSine 2012-04-09 00:05:49
這將是很好的嘗試OpenJDK。有一個關於它成爲標準的Oracle/Sun視頻。我所知道的僅僅是我所使用的並且沒有任何問題(Ubuntu 11.10/Netbeans/Web應用程序開發/ Glassfish) – Quaternion 2012-04-09 00:32:42