高信頼化システム監視機能 HAモニタ HP-UX編

[目次][用語][索引][前へ][次へ]

6.9.3 サーバの監視コマンドの作成

サーバの監視コマンドは,プログラムの状態を監視するコマンドです。HAモニタでは,サーバの監視コマンドを作成することによって,サーバ障害時にサーバの再起動や自動系切り替えができます。

ここでは,サーバの監視コマンドが呼び出されるタイミング,およびサーバの監視コマンドの作成方法について説明します。サーバの監視方法の説明については,「3.1.1 モニタモードのサーバの監視」を参照してください。

<この項の構成>
(1) サーバの監視コマンドが呼び出されるタイミング
(2) サーバの監視コマンドの作成方法

(1) サーバの監視コマンドが呼び出されるタイミング

作成したサーバの監視コマンドは,HAモニタがスーパユーザの権限で実行します。

サーバの監視コマンドは,実行系で実行サーバが起動完了したあとに起動されます。

(2) サーバの監視コマンドの作成方法

サーバの監視コマンドのサンプルファイルを,HAモニタサンプルファイル用ディレクトリの下にpatrol.sh というファイル名で格納していますので,必要に応じて利用してください。作成したサーバの監視コマンドは,サーバ対応の環境設定のpatrolcommandオペランドに指定します。

サーバの監視コマンドは,次の点を考慮して作成してください。

次に,Bシェルによる監視コマンドの作成例を示します。

#!/bin/sh
# The object program to monitor
PROGRAM=/home/xxxx/yyyy
 
# The definition of command
PS=/bin/ps
GREP=/bin/grep
 
# Main loop
while true
do
    # Is the object program to monitor operating ?
    EXIST=`$PS -efl | $GREP $PROGRAM | $GREP -v grep`
 
    # When the object program to monitor is not operating,
    # the variable EXIST is empty.
    if [ "$EXIST" = "" ]
    then
        # This patrol command terminates, because the object program
        # to monitor is not operating.
        exit
    fi
 
    # The monitoring is continued, because the object program
    # to monitor is operating.
    sleep 5
done

前述のコーディング例では,サーバの監視コマンド内でループを持ち,そのループ内でプログラムのプロセスがあるかどうかを確認します。プロセスの確認には,OSのpsコマンドの出力などを使用します。プログラムのプロセスがあるならばループを継続し,プロセス生存の確認を続行します。