Solaris 8 のシステム管理 (追補)

RCM スクリプトのタスク

次の節では、アプリケーション開発者およびシステム管理者のための RCM スクリプトのタスクについて記述します。

アプリケーション開発者の RCM スクリプトのタスク

次の表では、RCM スクリプトを作成するアプリケーション開発者のタスクを記載しています。

表 17–1 アプリケーション開発者のための RCM スクリプトのタスクマップ

タスク 

説明 

手順の参照先 

1. アプリケーションが使用するリソースを明確にする。 

動的に削除できる可能性がある、アプリケーションが使用するリソース (デバイス名) を明確にする。 

cfgadm(1m) のマニュアルページ

2. リソースを解放するためのコマンドを明確にする。 

アプリケーションからリソースをクリーンに解放するよう、アプリケーションに通知するためのコマンドを明確にする。 

アプリケーションのマニュアル 

3. リソースの削除後に実行するコマンドを明確にする。 

リソースの削除をアプリケーションに通知するためのコマンドを含める。 

rcmscript(4) のマニュアルページ

4. リソースの削除が失敗した場合のコマンドを明確にする。 

利用可能なリソースをアプリケーションに通知するためのコマンドを含める。 

rcmscript(4) のマニュアルページ

5. RCM スクリプトを書く。 

 

テープのバックアップ用 RCM スクリプトの例

6. RCM スクリプトをインストールする。 

スクリプトを適切なスクリプトのディレクトリに追加する。 

RCM スクリプトをインストールするには

7. RCM スクリプトをテストする。 

スクリプトのコマンドを手動で実行し、動的再構成の操作を開始して、スクリプトをテストする。 

RCM スクリプトをテストするには

システム管理者の RCM スクリプトのタスク

次の表では、サイトにおけるカスタマイズのために RCM スクリプトを作成するシステム管理者のタスクを記載しています。

表 17–2 システム管理者のための RCM スクリプトのタスクマップ

タスク 

説明 

参照先 

1. 動的に削除されるリソースを明確にする。 

cfgadm -l コマンドの使用により、削除される可能性のあるリソース (デバイス名) を明確にします。

cfgadm(1m) のマニュアルページ

2. 停止されるアプリケーションを明確にする。 

アプリケーションをクリーンに停止させるためのコマンドを明確にする。 

アプリケーションのマニュアル 

3. リソースの削除前および削除後に実行するコマンドを明確にする。 

リソースが削除される前と後に実行するアクションを明確にします。 

rcmscript(4) のマニュアルページ

4. RCM スクリプトを書く。 

 

テープのバックアップ用 RCM スクリプトの例

5. RCM スクリプトをインストールする。 

スクリプトを適切なスクリプトのディレクトリに追加する。 

RCM スクリプトをインストールするには

6. RCM スクリプトをテストする。 

スクリプトのコマンドを手動で実行し、動的再構成の操作を開始して、スクリプトをテストする。 

RCM スクリプトをテストするには

RCM スクリプトの名付け方

スクリプトは、次の定義に従って vendor,service と名付ける必要があります。

vendor

そのスクリプトを提供するベンダーのストックシンボル (株式記号) であるか、またはそのベンダーを明確に識別できる名前。 

service

そのスクリプトが行うサービスの名前。 

RCM スクリプトのインストールまたは削除

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

任意のハードウェア用のスクリプト 

RCM スクリプトをインストールするには

  1. スーパーユーザーになります。

  2. スクリプトを、表 17–3 に記載されているように適切なディレクトリにコピーします。

    たとえば、次のようにします。


    # cp SUNW,sample.pl /usr/lib/rcm/scripts
    
  3. スクリプトのユーザー ID とグループ ID を希望する値に変更します。

    たとえば、次のようにします。


    # chown user:group /usr/lib/rcm/scripts/SUNW,sample.pl
    
  4. SIGHUP を RCM デーモンに送信します。


    # pkill -HUP -x -u root rcm_daemon
    

RCM スクリプトを削除するには

  1. スーパーユーザーになります。

  2. RCM スクリプトのディレクトリから、スクリプトを削除します。

    たとえば、次のようにします。


    # rm /usr/lib/rcm/scripts/SUNW,sample.pl
    
  3. SIGHUP を RCM デーモンに送信します。


    # pkill -HUP -x -u root rcm_daemon
    

RCM スクリプトをテストするには

  1. スクリプトを実行する前に、コマンド行のシェルで RCM_ENV_FORCE などの環境変数を設定します。

    たとえば、Korn シェルでは、以下を使用します。


    $ export RCM_ENV_FORCE=TRUE
    
  2. コマンド行からスクリプトのコマンドを手動で実行して、スクリプトをテストします。

    たとえば、次のようにします。


    $ script-name scriptinfo
    $ script-name register
    $ script-name preremove resource-name
    $ script-name postremove resource-name
    
  3. スクリプト内の各 RCM スクリプトコマンドが stdout (標準出力) に適切な出力をプリントすることを確認します。

  4. スクリプトを適切なスクリプトのディレクトリにインストールします。

    詳細は、RCM スクリプトをインストールするには を参照してください。

  5. 動的な削除の操作を開始して、スクリプトをテストします。

    たとえば、スクリプトがデバイス /dev/dsk/c1t0d0s0 を登録していると仮定します。次のコマンドを実行してみます。


    $ cfgadm -c unconfigure c1::dsk/c1t0d0
    $ cfgadm -f -c unconfigure c1::dsk/c1t0d0
    $ cfgadm -c configure c1::dsk/c1t0d0
    

    注意 – 注意 –

    これらのコマンドはシステムの状態を変えたり、システムに障害を引き起こしたりする可能性もあるため、これらのコマンドについて熟知しておく必要があります。