- PR -

tomcat自動起動でエンターキーを入力しないと進めない?!

1
投稿者投稿内容
リズ
会議室デビュー日: 2005/04/21
投稿数: 18
投稿日時: 2008-02-15 22:42
こんばんは。Tomcat自動起動の動作で悩んでおります。

環境:
RedHatEL2.6.9
Tomcat4.1.36

Tomcat自動起動スクリプト(/etc/init.d/startupTomcat)を作成し、chkconfigの設定をしました。
OSを再起動し動作を確認したところ、上記スクリプト「startupTomcat」の実行で動きが止まってしまいます。エンターキーを押すと[OK]と出てApacheの起動…と進んでいき、Tomcatも正常に起動します。
これでは自動起動ではないでないか!と悩んでおります。
何回か試したところ、エンターキーを何度も押しても反応がなかったこともありました。時間がたってやっと反応する状態です。

スクリプトを直接呼んでのTomcat起動は問題なく動作しました。
改行コードの問題も疑い、CR の部分を除去するなど対応しましたが状況は変わりません。
スクリプトの内容の問題かと思ったのですが、以前同じ起動スクリプトをFedoraCore3で使用していて難なく動作しておりましたのでさらに悩んでおります。

なぜこのような現象が起きるのかご存知の方いらっしゃいましたら教えていただけないでしょうか。
よろしくお願いいたします。

起動スクリプトは以下になります。
----------------------------------------
#!/bin/sh
#
# Startup script for the tomcat
#
# chkconfig: 2345 80 15
# description: Tomcat is a Servlet+JSP Engine.

# Source function library.
. /etc/rc.d/init.d/functions

export JAVA_HOME=/usr/local/j2sdk1.4.2_13
SUBSYS=/var/lock/subsys/tomcat
TOMCAT_HOME=/app/apache-tomcat-4.1.34-LE-jdk14
TOMCAT_OWNER=tomcat

if [ ! -f $TOMCAT_HOME/bin/startup.sh -o ! -d $TOMCAT_HOME ]
then
echo "Tomcat startup: cannot start"
exit
fi

case "$1" in
'start')
if [ -f $TOMCAT_HOME/bin/startup.sh ]
then
echo "Starting the tomcat service "
su - $TOMCAT_OWNER -c "$TOMCAT_HOME/bin/startup.sh"
touch $SUBSYS
fi
;;
'stop')
echo "Stopping the tomcat service."
su - $TOMCAT_OWNER -c "$TOMCAT_HOME/bin/shutdown.sh"
rm -f $SUBSYS
;;
'restart')
$0 stop
$0 start
;;
'status')
if [ -f $SUBSYS ]
then
echo $0 started.
else
echo $0 stopped.
fi
;;

*)
echo "Usage: $0 {start|stop|restart|status}"
;;
esac
exit 0
スクリプトここまで----------------------------
リズ
会議室デビュー日: 2005/04/21
投稿数: 18
投稿日時: 2008-02-16 19:54
解決しました!

スクリプトの中でsuしているのが原因でした。
SELinuxが有効になっていたため、suコマンドを実行するとどのコンテキストでセッションを開始するか選択を求められるのですね。。そのためにスクリプトが入力待ちになったまま返ってこなくなる状況になっていたようです。

スクリプト内のsuの部分をrunuserに修正することで正常に自動起動できました。
結構ハマりました^_^; 皆様お騒がせ致しました。
1

スキルアップ/キャリアアップ(JOB@IT)