次の節では、アプリケーション開発者およびシステム管理者のための RCM スクリプトのタスクについて記述します。
次の表では、RCM スクリプトを作成するアプリケーション開発者のタスクを記載しています。
表 17–1 アプリケーション開発者のための RCM スクリプトのタスクマップ
タスク |
説明 |
手順の参照先 |
---|---|---|
1. アプリケーションが使用するリソースを明確にする。 |
動的に削除できる可能性がある、アプリケーションが使用するリソース (デバイス名) を明確にする。 |
cfgadm(1m) のマニュアルページ |
2. リソースを解放するためのコマンドを明確にする。 |
アプリケーションからリソースをクリーンに解放するよう、アプリケーションに通知するためのコマンドを明確にする。 |
アプリケーションのマニュアル |
3. リソースの削除後に実行するコマンドを明確にする。 |
リソースの削除をアプリケーションに通知するためのコマンドを含める。 |
rcmscript(4) のマニュアルページ |
4. リソースの削除が失敗した場合のコマンドを明確にする。 |
利用可能なリソースをアプリケーションに通知するためのコマンドを含める。 |
rcmscript(4) のマニュアルページ |
5. RCM スクリプトを書く。 |
| |
6. RCM スクリプトをインストールする。 |
スクリプトを適切なスクリプトのディレクトリに追加する。 | |
7. RCM スクリプトをテストする。 |
スクリプトのコマンドを手動で実行し、動的再構成の操作を開始して、スクリプトをテストする。 |
次の表では、サイトにおけるカスタマイズのために RCM スクリプトを作成するシステム管理者のタスクを記載しています。
表 17–2 システム管理者のための RCM スクリプトのタスクマップ
タスク |
説明 |
参照先 |
---|---|---|
1. 動的に削除されるリソースを明確にする。 |
cfgadm -l コマンドの使用により、削除される可能性のあるリソース (デバイス名) を明確にします。 |
cfgadm(1m) のマニュアルページ |
2. 停止されるアプリケーションを明確にする。 |
アプリケーションをクリーンに停止させるためのコマンドを明確にする。 |
アプリケーションのマニュアル |
3. リソースの削除前および削除後に実行するコマンドを明確にする。 |
リソースが削除される前と後に実行するアクションを明確にします。 |
rcmscript(4) のマニュアルページ |
4. RCM スクリプトを書く。 |
| |
5. RCM スクリプトをインストールする。 |
スクリプトを適切なスクリプトのディレクトリに追加する。 | |
6. RCM スクリプトをテストする。 |
スクリプトのコマンドを手動で実行し、動的再構成の操作を開始して、スクリプトをテストする。 |
スクリプトは、次の定義に従って vendor,service と名付ける必要があります。
vendor |
そのスクリプトを提供するベンダーのストックシンボル (株式記号) であるか、またはそのベンダーを明確に識別できる名前。 |
service |
そのスクリプトが行うサービスの名前。 |
RCM スクリプトのインストールや削除を行うには、スーパーユーザー (root) である必要があります。次の表を使用して、RCM スクリプトをどこにインストールするかを決めます。
表 17–3 RCM スクリプトのディレクトリ
ディレクトリのロケーション |
スクリプトのタイプ |
---|---|
/etc/rcm/scripts |
特定のシステム用のスクリプト |
/usr/platform/`uname -i`/lib/rcm/scripts |
特定のハードウェアの実装用のスクリプト |
/usr/platform/`uname -m`/lib/rcm/scripts |
特定のハードウェアクラス用のスクリプト |
/usr/lib/rcm/scripts |
任意のハードウェア用のスクリプト |
スーパーユーザーになります。
スクリプトを、表 17–3 に記載されているように適切なディレクトリにコピーします。
たとえば、次のようにします。
# cp SUNW,sample.pl /usr/lib/rcm/scripts |
スクリプトのユーザー ID とグループ ID を希望する値に変更します。
たとえば、次のようにします。
# chown user:group /usr/lib/rcm/scripts/SUNW,sample.pl |
SIGHUP を RCM デーモンに送信します。
# pkill -HUP -x -u root rcm_daemon |
スーパーユーザーになります。
RCM スクリプトのディレクトリから、スクリプトを削除します。
たとえば、次のようにします。
# rm /usr/lib/rcm/scripts/SUNW,sample.pl |
SIGHUP を RCM デーモンに送信します。
# pkill -HUP -x -u root rcm_daemon |
スクリプトを実行する前に、コマンド行のシェルで RCM_ENV_FORCE などの環境変数を設定します。
たとえば、Korn シェルでは、以下を使用します。
$ export RCM_ENV_FORCE=TRUE |
コマンド行からスクリプトのコマンドを手動で実行して、スクリプトをテストします。
たとえば、次のようにします。
$ script-name scriptinfo $ script-name register $ script-name preremove resource-name $ script-name postremove resource-name |
スクリプト内の各 RCM スクリプトコマンドが stdout (標準出力) に適切な出力をプリントすることを確認します。
スクリプトを適切なスクリプトのディレクトリにインストールします。
詳細は、RCM スクリプトをインストールするには を参照してください。
動的な削除の操作を開始して、スクリプトをテストします。
たとえば、スクリプトがデバイス /dev/dsk/c1t0d0s0 を登録していると仮定します。次のコマンドを実行してみます。
$ cfgadm -c unconfigure c1::dsk/c1t0d0 $ cfgadm -f -c unconfigure c1::dsk/c1t0d0 $ cfgadm -c configure c1::dsk/c1t0d0 |
これらのコマンドはシステムの状態を変えたり、システムに障害を引き起こしたりする可能性もあるため、これらのコマンドについて熟知しておく必要があります。