はじめての自宅サーバ構築 - Fedora/CentOS -
Last Update 2018/05/30
[ 更新履歴 ] [ サイト マップ ] [ 質問掲示板 ] [ 雑談掲示板 ] [ リンク ]
トップ >> 質問掲示板

 このスレッドはクローズされています。記事の閲覧のみとなります。

 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 は二つの整数を返すのですが、
その状態でもこのスクリプトをただしく実行するためには
どのような修正を加えればよいでしょうか??

ご教授お願いいたします。
メンテ

Page:  [1]

■ コンテンツ関連情報

 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
名前: いし

管理者様、
お忙しい中質問に返答頂きありがとうございます。

私の勉強不足のため、
『スクリプトはなんとなく読めても書くことはできない』
という状況でしたのでこちらに質問させていただきました。
管理者様のヒントを元に不慣れではありますが、
がんばってスクリプトを編集してみようと思います。

どうもありがとうございました。
メンテ

Page:  [1]

■ その他

ページ先頭へ

Copyright(©)2004-2018 First home server construction. All Right Reserved.