したがって、埋め込みjettyとmaven app-assemblerプラグインを使用してWebサーバーを実行しています。私がapp-assemblerアプリを直接(rootとして実行して)呼び出すと、サーバは正常に起動します。 nohupで実行しても、Webサーバーは完全に正常に起動します。JavaサーバーがCentOS 5の起動時に掛かります
init.dスクリプト(Runlevels 235/Start pri 98/Stop pri 20)としてapp-assemblerスクリプトを登録し、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'を実行している)場合は、スクリプトを直接実行してもハングしません。
この問題を解決するためのアドバイスや指導を探しています。私は、Sun(Oracleの)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
私はSun JDKを使用しています。この情報を含めるように質問を更新しました – ArcSine
OpenJDKを試してみてください。標準となるOracle/Sunのビデオがありました。私が知っているのは、私が使用しているすべてのもので、問題はないということです(Ubuntu 11.10/Netbeans/Webアプリケーション開発/ Glassfish) – Quaternion