MC/ServiceGuardでは,ソフトウェアを監視対象とするためには,各実行コマンドが実際のサービスの名前であることと,そのプロセスが実際にサービスが終了するまで動作している必要があります。
HTTP Serverでは,実行コマンドと実際にサービスするプロセスが異なります。MC/ServiceGuardの監視対象とするためには,実際のプロセスを監視するスクリプトを作成してください。
ただし,監視対象としない場合や,ローカルノードだけの運用の場合,すなわち他ノードにフェイルオーバをさせない場合には,スクリプトを作成する必要はありません。
HTTP Serverの動作を監視するためのシェルスクリプトを作成します。「HTTP Serverに障害が発生して停止したと同時にその実行を終了する」という処理をするスクリプトの例を示します。
#!/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
HTTP Serverでは,リクエストを処理するためのプロセス群を制御するプロセスが一つあります(「4.1 HTTP Serverの処理とディレクティブとの関係」参照)。例に示したスクリプトhttpsd_monitorでは,その制御プロセスが動作しているかどうかを監視します。リクエスト処理のためのプロセス群の動作は監視しません。