このスレッドはクローズされています。記事の閲覧のみとなります。
tomcat5の起動停止スクリプトについて |
|
- æ¥æï¼ 2006/10/27 07:50
- ååï¼ いし
- tomcat5の起動停止スクリプトについての質問です。
case "$1" in start) if [ -z $(/sbin/pidof java) ]; then echo "Starting Tomcat..." ${TOMBIN}/catalina.sh $1 touch /var/lock/subsys/tomcat else echo "Tomcat allready running!!!" fi ;;
上記のスクリプトは(貴サイトで配布されているものの一部)、
『引数に "start" が指定されたとき、 java を使用しているプロセスが存在しなければ(pidof java が 0 を返すならば) tomcatを起動する』
と解釈しております。
私の環境では、java を使用するプロセスが複数ある場合があります。 この場合 pid of java は二つの整数を返すのですが、 その状態でもこのスクリプトをただしく実行するためには どのような修正を加えればよいでしょうか??
ご教授お願いいたします。
|
■ コンテンツ関連情報
Re: tomcat5の起動停止スクリプトについて ( No.1 ) |
|
- æ¥æï¼ 2006/10/27 13:45
- ååï¼ 管理者
- いしさん、こんにちは。
まず、当方が公開している起動スクリプトですが「シングルJAVA」での「起動/停止」しか考慮されていません。 故に「pidof java」で条件を行っています。
たとえば「java」アプリケーション経由で複数のプロセスが起動するようなパターン(今回のいしさんの場合)はそのjava経由で起動したプロセスIDをどこかに保存するような仕掛けが必要です。
例をだすと、このスクリプト自体は「tomcat5」という名前になっています。 これを「JAVAアプリケーションA」を「java_app_A」とします。同様に「JAVAアプリケーションB」を「java_app_B」とします。 「java_app_A」スクリプトを実行した時にその時のjavaプロセスIDを取得し「/var/run/java_app_A.pid」ファイルに保存します。 同様に「java_app_B」スクリプトを実行のjavaプロセスIDを「/var/run/java_app_B.pid」ファイルに保存します。 ここまでくれば、大体察しがついたと思われますが、複数起動される毎にPIDを管理し終了時には該当するPIDを終了するように行えばいいわけです。
なので、当方が公開した起動停止スクリプトは1プロセスしか対応しておりません。 変更を行う場合は、if文で書いてある「pidof java」ではなくて「/var/run/java_app_x.pid」にするようにすればよいと思います。 (JAVAアプリケーション毎に、同様のスクリプトが増えてゆくイメージと思ってください。)
もっと簡単な方法があるかも知れませんが当方の知識不足な為、その方法論がわかりません。
|
Re: tomcat5の起動停止スクリプトについて ( No.2 ) |
|
- æ¥æï¼ 2006/10/28 21:36
- ååï¼ いし
- 管理者様、
お忙しい中質問に返答頂きありがとうございます。
私の勉強不足のため、 『スクリプトはなんとなく読めても書くことはできない』 という状況でしたのでこちらに質問させていただきました。 管理者様のヒントを元に不慣れではありますが、 がんばってスクリプトを編集してみようと思います。
どうもありがとうございました。
|
■ その他