付録D.3 監視スクリプトの作成
MC/ServiceGuardでは,ソフトウェアを監視対象とするためには,各実行コマンドが実際のサービスの名前であることと,そのプロセスが実際にサービスが終了するまで動作している必要があります。
HTTP Serverでは,実行コマンドと実際にサービスするプロセスが異なります。MC/ServiceGuardの監視対象とするためには,実際のプロセスを監視するスクリプトを作成してください。
ただし,監視対象としない場合や,ローカルノードだけの運用の場合,すなわち他ノードにフェイルオーバをさせない場合には,スクリプトを作成する必要はありません。
HTTP Serverの動作を監視するためのシェルスクリプトを作成します。「HTTP Serverに障害が発生して停止したと同時にその実行を終了する」という処理をするスクリプトの例を示します。
- (例)
-
PidFileディレクティブで指定したファイルに記録されているプロセスIDが実行中かどうかを,5秒おきに監視するシェルスクリプト(httpsd_monitor)です。PidFileディレクティブ指定値を絶対パスで表したものを引数に指定します。
#!/bin/sh HWSITIME=5 if [ $# -ne 1 ] then exit 1 fi HWSIDFILE=$1 if [ ! -e $HWSIDFILE ] then exit 1 fi HWSID=`cat $HWSIDFILE` if [ x$HWSID = "x" ] then exit 1 fi while true do STATUS=`ps -p $HWSID | grep $HWSID | awk '{print $1}' ` if [ x$STATUS = "x" ] then break fi sleep $HWSITIME done exit 0
- 〈この項の構成〉
(1) 注意事項
HTTP Serverでは,リクエストを処理するためのプロセス群を制御するプロセスが一つあります(「4.1 HTTP Serverの処理とディレクティブとの関係」参照)。例に示したスクリプトhttpsd_monitorでは,その制御プロセスが動作しているかどうかを監視します。リクエスト処理のためのプロセス群の動作は監視しません。