6.15.2 待機サーバの停止時に実行するコマンドの作成
待機サーバの停止時に実行するコマンドを作成することで,待機サーバの停止時に,プロセスの停止や任意の処理を実行できます。
ここでは,待機サーバの停止時に実行するコマンドについて,呼び出されるタイミング,および作成方法を説明します。
(1) 待機サーバの停止時に実行するコマンドが呼び出されるタイミング
作成したコマンドは,HAモニタがスーパユーザの権限で実行します。
コマンドは,次の場合に呼び出されます。
-
実行系でモニタモードのサーバの停止コマンド(monendコマンド)を実行して,実行サーバの正常終了に伴って待機サーバが正常終了する場合
-
待機サーバの停止コマンド(monsbystpコマンド)を実行して,待機サーバを正常終了する場合
-
待機サーバの障害を検出した場合
-
待ち状態のサーバの停止コマンド(mondeactコマンド)を実行して,系切り替え待ち状態のサーバを強制的に停止する場合
-
系切り替え待ち状態のサーバの障害を検出した場合
HAモニタは,コマンドに,呼び出される場合に応じた引数を渡します。引数には,"-e",および"-c"があります。コマンドの起動条件,渡される引数,引数が渡されたときの処理の関係を次の表に示します。次の表に従って,それぞれの引数に対応する処理をコマンドに記述してください。
コマンドの起動条件 |
渡される引数 |
引数が渡されたときの処理 |
---|---|---|
待機サーバの停止コマンド(monsbystpコマンド)でサーバを停止 |
-e |
プログラムを正常停止する。 |
待機サーバ障害による待機サーバの停止 |
-c |
異常終了したプログラムを再起動できるようにするための処理をする。 |
待機サーバ障害時の待機サーバ再起動前処理 |
||
待機サーバの起動コマンド失敗による,待機サーバの起動中止 |
||
系切り替え待ち状態のサーバを,待ち状態のサーバの停止コマンド(mondeactコマンド)で強制停止 |
||
系切り替え待ち状態のサーバの障害によるサーバの強制停止 |
- 注意事項
-
系切り替え時には,待機系での停止コマンドは呼び出されません。
(2) 待機サーバの停止時に実行するコマンドの作成方法
待機サーバの停止時に実行するコマンドを作成して,サーバ対応の環境設定のsby_actcommandで起動したプログラムの停止処理などをしてください。
シェルの中でプログラムの終了に必要な動作環境を設定してください。なお,Unit設定ファイルにも環境変数を設定できますが,HAモニタを上書きインストールするとUnit設定ファイルが上書きされます。そのため,シェルの中で動作環境(環境変数)を設定することを推奨します。
待機サーバの停止コマンドを実行した際に引き継がれる環境変数については,「6.14.2 サーバの停止コマンドの作成」の「(2) サーバの停止コマンドの作成方法」を参照してください。
作成したコマンドは,サーバ対応の環境設定のsby_termcommand オペランドに指定します。
コマンドが起動してから終了するまでのタイムアウト時間は,サーバ対応の環境設定のsby_stop_timeoutオペランドで指定できます。
待機サーバの正常終了時に呼び出された場合,コマンドの戻り値によって,HAモニタの動作が変わることはありません。待機サーバの再起動時に呼び出された場合,コマンドが0以外で終了したとき,HAモニタでは以降の処理(待機サーバの再起動,監視コマンドの起動,および監視)を中断します。そのため,待機サーバの再起動が失敗となります。再起動に失敗した場合の対処については,「7.5.2 サーバの再起動失敗に対処する」を参照してください。