4.16.2 サーバの停止コマンドの作成

停止コマンドは,スーパユーザが実行します。必要に応じてシェルの中でサーバプログラムの終了に必要な動作環境を設定してください。

<この項の構成>
(1) 停止コマンドの作成方法
(2) 停止コマンドを呼び出すタイミング
(3) 停止コマンド運用時の障害と対処

(1) 停止コマンドの作成方法

停止コマンドは,サーバ対応の環境設定のtermcommandオペランドに指定します。停止コマンドは,サーバプログラムの停止処理を記述したシェルなどを作成します。

また,実行サーバの正常終了時,計画停止時に呼び出される停止コマンドの戻り値は意識していません。一方,サーバの再起動時に呼び出される停止コマンドでは,処理が正常終了した場合は戻り値として必ず0を返すよう処理を記述してください。

なお,複数のサーバプログラムの停止処理を停止コマンドに記述することで,複数のサーバプログラムを一つのサーバとして使用できます。

(2) 停止コマンドを呼び出すタイミング

停止コマンドは,次の実行サーバ終了時の,共有リソースの切り離しをする前に呼び出されます。

呼び出される場合に応じて,停止コマンドに引数を渡します。停止コマンドの起動条件と引数の関係を,次の表に示します。

表4-6 停止コマンドの起動条件と渡される引数

停止コマンドの起動条件渡される引数
実行サーバ停止連絡コマンド(monendコマンド)-e
計画系切り替えコマンド(monswapコマンド)-w
サーバ障害時の再起動前処理-c

(3) 停止コマンド運用時の障害と対処

サーバ障害時にサーバプログラムを再起動する設定の場合,停止コマンドの起動に失敗すると,メッセージKAMN273-Eを表示して,サーバプログラムの再起動処理を中止します。この場合,障害となる要因を取り除いたあと,オペレータがmonendコマンドでいったん実行サーバを停止し,再度monbeginコマンドで起動するか,monswapコマンドで待機系に計画系切り替えをする必要があります。KAMN273-Eに表示されるエラーコードの一覧を次の表に示します。

表4-7 KAMN273-Eに表示されるエラーコード一覧(停止コマンド運用時)

原因コード詳細コード説明
3システムコールのerrnotermcommandオペランドに指定した停止コマンド実行時にシステムエラーが発生しました。
4コマンド戻り値termcommandオペランドに指定した停止コマンドが戻り値として0以外を返しました。
126termcommandオペランドに指定したファイルに実行権限がありません。
127termcommandオペランドに指定したファイルがありません。