/etc/init.d/tomcat
CentOS 6.3 マシンに Tomcat をインストールし、ファイルを作成して Tomcat をサービスにしました。基本的な開始、停止、再起動、およびステータス機能で問題なく動作します。
私はサーバーで jconsole をよく使用するので、service tomcat monitor
を実行ps aux|grep java
してからjconsole <Java PID>
.
これが私のサービススクリプトです(モニターセクションのみ):
monitor)
# Check for Tomcat PID (greps are separated to prevent returning the single grep PID)
FOUND_PID=$(ps aux |grep $JAVA_HOME/bin/ | grep java |awk -F' ' '{print $2}')
if [[ $FOUND_PID ]]
then
echo -e $JAVA_HOME/bin/jconsole $FOUND_PID
$JAVA_HOME/bin/jconsole $FOUND_PID
else
echo -e "Failed: Tomcat is not currently running";
fi
;;
モニター セクション内のすべては、bash スクリプトを直接実行すると機能しますが、サービスがそれを呼び出すと、jconsole ラインでハングして何もしません。
を実行するservice tomcat monitor
と、正しいパスが出力されるので、パスが正しいことがわかります。
サービススクリプトから呼び出されたときに jconsole を動作させる方法はありますか?