- PR -

Tomcat5.0.28のshutdown.sh実行時のエラーに関して

投稿者投稿内容
はしもと
大ベテラン
会議室デビュー日: 2003/02/05
投稿数: 182
投稿日時: 2006-11-24 19:50
環境変数 JAVA_OPTS か CATALINA_OPTS に -Djava.net.preferIPv4Stack=true を
設定するとどうなるでしょうか。

起動時、終了時ともに設定してみて下さい。

ちなみに telnet で 8005 番ポートに接続して
Server 要素の shutdown 属性で指定したパスワードを入力すれば
Tomcat は停止します。
Masumi
会議室デビュー日: 2006/10/12
投稿数: 11
投稿日時: 2006-12-02 01:13
返信遅くなって申し訳ないです。
とりあえずはしもとさんの方法試しました
tomcatの起動スクリプトから読み込まれているtomcat.confに
環境変数設定したのですが、症状はいかのとおりです。
service tomcat start とか stop とか restart をしても
Usage: /etc/init.d/tomcat {start|stop|restart|status}
とメッセージがでて起動もできなくなりました。
なんなのでしょうかね???
うーーん困りました。
shutdownポートの8005に問題がありのでしょうか?
はしもと
大ベテラン
会議室デビュー日: 2003/02/05
投稿数: 182
投稿日時: 2006-12-02 14:36
引用:
JOE.Kさんの書き込み (2006-12-02 01:13) より:
tomcatの起動スクリプトから読み込まれているtomcat.confに
環境変数設定したのですが、症状はいかのとおりです。
service tomcat start とか stop とか restart をしても
Usage: /etc/init.d/tomcat {start|stop|restart|status}
とメッセージがでて起動もできなくなりました。



環境変数を設定したくらいで起動も出来なくなるくらいだから、
その起動スクリプトという物が問題の原因ではないかと思います。

引用:
shutdownポートの8005に問題がありのでしょうか?



telnet で Tomcat を停止する方法を試しても停止できなかったなら
8005 番ポート関連に問題があるのでしょう。
Masumi
会議室デビュー日: 2006/10/12
投稿数: 11
投稿日時: 2006-12-02 20:27
ありがとうございます。
問題が複数混在しそうなので、とりあえず
起動スクリプトを
下記に記載させていただきます。

/etx/rc.d/init.d/tomcatの内容:

#!/bin/bash
#
# Startup script for the tomcat
#
# chkconfig: 345 80 15
# description: Tomcat is a Servlet+JSP Engine.

# Source function library.

. /etc/rc.d/init.d/functions
# Load additional setting
TOMCAT_CONF=/usr/local/tomcat5/tomcat.conf
[ -r $TOMCAT_CONF ] && . $TOMCAT_CONF

start(){
if [ ! -f /var/lock/subsys/tomcat ]; then
echo "Starting tomcat"
/usr/local/tomcat5/bin/startup.sh
touch /var/lock/subsys/tomcat
else
echo "tomcat allready running"
fi
}

stop(){
if [ -f /var/lock/subsys/tomcat ]; then
echo "Shutting down tomcat"
/usr/local/tomcat5/bin/shutdown.sh
until [ -z $(/sbin/pidof java) ]; do :; done
rm -f /var/lock/subsys/tomcat
else
echo "tomcat not running"
fi
}

case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
status)
/usr/local/tomcat5/bin/catalina.sh version
;;
*)
echo "Usage: $0 {start|stop|restart|status}"
esac

exit 0

ーーーーーーーーーー
/usr/local/tomcat5/tomcat.conf の内容

# The setteing for tomcat deamon
export PATH=/usr/local/jdk1.5.0_05/bin:$PATH
set CATALINA_OPTS="-Djava.net.preferIPv4Stack=true"
export CATALINA_OPTS
export JAVA_HOME=/usr/local/jdk1.5.0_05
export JRE_HOME=/usr/local/jdk1.5.0_05/jre
export TOMCAT_HOME=/usr/local/tomcat5

−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

8005:のポートですがtomcatを起動して20秒ほど経たないと
   待ち状態になりませんね。それまでに
/usr/local/tomcat5/bin/shutdown.sh
  を実行すると冒頭のエラーになるみたいです。
  ただ、OSのシャットダウン時にTOMCATが起動状態ですと必ず、このスレの最初のエラー
  が出ます。ひょっとしてこれは起動スクリプトに問題ありなのでしょうか?
  起動スクリプトにstartからshutdownの間にdelay(?)みたいなことができれば
  どうなのかなと思います。(素人の考えなので気にしないでください)
  起動スクリプトの起動時のプロセスとshutdown時のプロセスがいまいちわかっていない素人です。
  いろいろと意見をいただいて感謝しております。
  みなさまもう少しこの素人につき合ってやってください。
  よろしくお願いします。
はしもと
大ベテラン
会議室デビュー日: 2003/02/05
投稿数: 182
投稿日時: 2006-12-02 22:25
引用:
JOE.Kさんの書き込み (2006-12-02 20:27) より:

set CATALINA_OPTS="-Djava.net.preferIPv4Stack=true"
export CATALINA_OPTS
export JAVA_HOME=/usr/local/jdk1.5.0_05
export JRE_HOME=/usr/local/jdk1.5.0_05/jre
export TOMCAT_HOME=/usr/local/tomcat5



bash の環境変数設定に set は付けません。
TOMCAT_HOME は CATALINA_HOME の間違いでしょうか。
というか 5.0.x って JDK5 で問題無いのでしたっけ。

引用:
8005:のポートですがtomcatを起動して20秒ほど経たないと
   待ち状態になりませんね。それまでに



startup.sh (catalina.sh) が終了してもそれが Tomcat の起動処理の
完了ではありません。 スクリプトは Tomcat の java プロセスを
バックグラウンドで起動したら終了してしまいます。
Tomcat の起動処理が完了するのは大概そのずっと後です。

Tomcat が起動完了しないうちに終了処理を実行したら
エラーになっても不思議ではないです。

そちらの環境での起動処理の進行具合はログで分かると思うので確認して下さい。
ちなみに Celeron 300MHz で動かしていた頃、起動完了に 30 秒以上かかって
いた気がします。

引用:
起動スクリプトにstartからshutdownの間にdelay(?)みたいなことができれば
  どうなのかなと思います。(素人の考えなので気にしないでください)



私の rc スクリプトは、起動後に 8005 番ポート等を見て LISTEN 状態になるか、
ある程度時間が経過しないと start 処理が終了しない様になっています。
Masumi
会議室デビュー日: 2006/10/12
投稿数: 11
投稿日時: 2006-12-02 22:37
引用:
--------------------------------------------------------------------------------
私の rc スクリプトは、起動後に 8005 番ポート等を見て LISTEN 状態になるか、
ある程度時間が経過しないと start 処理が終了しない様になっています。
--------------------------------------------------------------------------------
そのスクリプト公開していただくわけには行かないでしょうか?


引用:
--------------------------------------------------------------------------------
Celeron 300MHz で動かしていた頃、起動完了に 30 秒以上かかって
いた気がします。
--------------------------------------------------------------------------------

Intel 800MHz です。。。。




はしもと
大ベテラン
会議室デビュー日: 2003/02/05
投稿数: 182
投稿日時: 2006-12-03 14:37
結局このパターンか。

BBコードの CODE を使うと正しく書けないので QUOTE にしました。
インデントは適当に付けて下さい。

引用:
waitForPort() {

local timeout= interval= port= counter= loop=

[ $# -eq 0 ] && return 0

timeout="${WAIT_FOR_PORT_TIMEOUT:-60}"
interval="${WAIT_FOR_PORT_INTERVAL:-5}"

counter=0
loop=1

for port in $* ; do
while [ $loop -ne 0 ]; do

/bin/netstat -an | /bin/grep '^tcp.*LISTEN' \
| /bin/awk '{print $4}' | /bin/grep ':'$port'$' > /dev/null 2>&1
if [ $? -eq 0 ]; then
break
fi

if [ $counter -lt $timeout ]; then
/bin/sleep $interval
counter=`/usr/bin/expr $counter + $interval`
else
loop=0
fi

done
done

if [ $loop -ne 0 ]; then
return 0
else
return 1
fi
}




[ メッセージ編集済み 編集者: はしもと 編集日時 2006-12-03 14:41 ]

[ メッセージ編集済み 編集者: はしもと 編集日時 2006-12-03 14:43 ]

[ メッセージ編集済み 編集者: はしもと 編集日時 2006-12-03 14:46 ]
Masumi
会議室デビュー日: 2006/10/12
投稿数: 11
投稿日時: 2006-12-09 22:57
はしもとさん>>
ありがとうございました。
返信が遅くなってすみません。
あれから自分なりにいろいろと調べた結果、起動スクリプトがうまくrc.dに登録されてなかったのが原因でした。。。。
いろいろとありがとうございました。
勉強になりました。
linuxはまだまだチンぷんカンプンですのでまたいろいろ教えてください

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