JavaScript is required to for searching.
ナビゲーションリンクをスキップ
印刷ビューの終了
Oracle Solaris 11.1 でのサービスと障害の管理     Oracle Solaris 11.1 Information Library (日本語)
search filter icon
search icon

ドキュメントの情報

はじめに

1.  サービスの管理 (概要)

2.  サービスの管理 (タスク)

SMF サービスのモニタリング

サービスのモニタリング (タスクマップ)

サービスのステータスを一覧表示する方法

サービスのカスタマイズを一覧表示する方法

特定のサービスに依存するサービスを表示する方法

特定のサービスが依存するサービスを表示する方法

SMF 遷移イベントの通知を設定する方法

SMF サービスの管理

SMF サービス (タスクマップ)

RBAC 権利プロファイルを使って SMF を管理する

SMF サービスを作成する方法

サービスインスタンスを無効にする方法

サービスインスタンスを有効にする方法

サービスを再起動する方法

保守状態のサービスを復元する方法

SMF プロファイルを作成する方法

SMF プロファイルを手動で作成する方法

SMF プロファイルを適用する方法

SMF サービスの構成

SMF サービスの構成 (タスクマップ)

SMF サービスプロパティーの変更方法

1 つのサービスの複数プロパティーを変更する方法

ファイルで構成されているサービスの変更方法

サービスの環境変数を変更する方法

inetd 制御サービスのプロパティーを変更する方法

サービスのカスタマイズを削除する方法

inetd 制御サービスのコマンド行引数を変更する方法

inetd.conf エントリを変換する方法

実行制御スクリプトの使用

実行制御スクリプトの使用 (タスクマップ)

実行制御スクリプトを使用して従来のサービスを起動または停止する方法

実行制御スクリプトを追加する方法

実行制御スクリプトを無効にする方法

実行制御スクリプトを SMF サービスに変換する方法

サービス管理機能のトラブルシューティング

SMF のトラブルシューティング (タスクマップ)

起動していないサービスをデバッグする方法

破壊されたリポジトリを修復する方法

どのサービスも起動しないでブートする方法

詳細モードでブートする方法

ブート中に system/filesystem/local:default サービスで障害が発生した場合に sulogin プロンプトを強制的に表示する方法

3.  障害管理の使用

索引

実行制御スクリプトの使用

次の手順は、実行制御スクリプトを使用してレガシーサービスを停止または開始する方法を示しています。また、実行制御スクリプトを追加または削除する手順も示しています。

実行制御スクリプトの使用 (タスクマップ)

次のタスクマップには、実行制御スクリプトの使用に関する複数の手順が含まれています。各行には、タスク、そのタスクを行う場面の説明、およびタスクへのリンクが含まれます。

タスク
説明
参照先
レガシーサービスを停止または起動します。
実行制御スクリプトを使用してサービスを起動または停止します。
実行制御スクリプトを追加します。
実行制御スクリプトを作成し、それを /etc/init.d ディレクトリに追加します。
実行制御スクリプトを無効にします。
ファイル名を変更することで実行制御スクリプトを無効にします。
SMF を使用するよう実行制御スクリプトを変換します。
実行制御スクリプトを SMF マニフェストに置き換えることにより、サービスを SMF サービスで管理できるようにします。

実行制御スクリプトを使用して従来のサービスを起動または停止する方法

  1. 管理者になるか、Service Management 権利プロファイルを含む役割になります。

    詳細は、『Oracle Solaris 11.1 の管理: セキュリティーサービス』の「割り当てられている管理権限を使用する方法」を参照してください。

  2. システムサービスを停止します。
    # /etc/init.d/filename stop
  3. システムサービスを再開します。
    # /etc/init.d/filename start
  4. サービスが停止または起動されたことを確認します。
    # pgrep -f service

例 2-19 実行制御スクリプトを使用してサービスを起動または停止する

たとえば、次のように入力することによって PPPoE サーバーデーモンを停止できます。

# /etc/init.d/pppd stop
# pgrep -f nfs

次に、PPPoE サーバーデーモンを再開するには、次のように入力します。

# /etc/init.d/pppd start
# pgrep -f ppp
101748
# pgrep -f ppp -d, | xargs ps -fp
     UID    PID   PPID   C    STIME TTY         TIME CMD
  daemon 101748      1   0   Sep 01 ?           0:06 /usr/lib/inet/pppoed

実行制御スクリプトを追加する方法

サービスを起動または停止するための実行制御スクリプトを追加するには、そのスクリプトを/etc/init.d ディレクトリにコピーします。次に、サービスを起動または停止する rcn.d ディレクトリ内にリンクを作成します。

実行制御スクリプトの命名法の詳細については、/etc/rcn.d ディレクトリ内の README ファイルを参照してください。次に、実行制御スクリプトを追加する方法について説明します。

  1. 管理者になるか、Service Management 権利プロファイルを含む役割になります。

    詳細は、『Oracle Solaris 11.1 の管理: セキュリティーサービス』の「割り当てられている管理権限を使用する方法」を参照してください。

  2. スクリプトを /etc/init.d ディレクトリに追加します。
    # cp filename/etc/init.d
    # chmod 0744 /etc/init.d/filename
    # chown root:sys /etc/init.d/filename
  3. 適切な rcn.d ディレクトリへのリンクを作成します。
    # cd /etc/init.d
    # ln filename /etc/rc2.d/Snnfilename
    # ln filename /etc/rcn.d/Knnfilename
  4. スクリプトのリンクが指定のディレクトリ内にあることを確認します。
    # ls /etc/init.d/*filename /etc/rc2.d/*filename /etc/rcn.d/*filename

例 2-20 実行制御スクリプトを追加する

次の例は、xyz サービスの実行制御スクリプトを追加する方法を示しています。

# cp xyz /etc/init.d
# chmod 0744 /etc/init.d/xyz
# chown root:sys /etc/init.d/xyz
# cd /etc/init.d
# ln xyz /etc/rc2.d/S99xyz
# ln xyz /etc/rc0.d/K99xyz
# ls /etc/init.d/*xyz /etc/rc2.d/*xyz /etc/rc0.d/*xyz

実行制御スクリプトを無効にする方法

実行制御スクリプトを無効にするには、ファイル名の先頭に下線 (_) を付けてファイル名を変更します。下線またはドット (.) で始まるファイルは実行されません。接尾辞を追加してファイルをコピーすると、両方のファイルが実行されます。

  1. 管理者になるか、Service Management 権利プロファイルを含む役割になります。

    詳細は、『Oracle Solaris 11.1 の管理: セキュリティーサービス』の「割り当てられている管理権限を使用する方法」を参照してください。

  2. 新しいファイルの先頭に下線 (_) を付けて、スクリプト名を変更します。
    # cd /etc/rcn.d
    # mv filename_filename
  3. スクリプトの名前が変更されたことを確認します。
    # ls _*
    _filename

例 2-21 実行制御スクリプトを無効にする

次の例は、S99datainit スクリプトの名前を変更する方法を示しています。

# cd /etc/rc2.d
# mv S99datainit _S99datainit
# ls _*
_S99datainit

実行制御スクリプトを SMF サービスに変換する方法

この手順では、既存の実行制御スクリプトをサポートする SMF の利点を使用する方法を示します。詳細は、svcbundle (1M) のマニュアルページを参照してください。

始める前に

最初に、スクリプトが必要とするサービスモデルを確認します。スクリプトが何らかの作業を実行し、長期間実行するプロセスを開始せずに終了するのであれば、ほとんどの場合は一時的なサービスです。スクリプトが長時間実行するデーモンを開始してから終了する場合、それは契約サービスです。サービスモデルについての詳細は、svc.startd(1M) のマニュアルページの期間セクションを参照してください。

次に、サービスに対して適切な実行レベルを確認します。これは、/etc/rc3.d などのスクリプトがリンクされているディレクトリを表示することで確認できます。

  1. 管理者になるか、Service Management 権利プロファイルを含む役割になります。

    詳細は、『Oracle Solaris 11.1 の管理: セキュリティーサービス』の「割り当てられている管理権限を使用する方法」を参照してください。

  2. 一時的なマニフェストを作成します。

    この例で、サービス名は ex_svc です。これは契約サービスで、レベル 3 で実行します。

    # svcbundle -o /tmp/ex_svc.xml -s service-name=ex_svc
          -s start-method=/lib/svc/method/ex_svc -s model=transient
  3. マニフェストへの追加変更を行います。

    /tmp/ex_svc.xml 内のマニフェストが、必要な内容であることを確認します。

  4. マニフェストを適切なディレクトリにコピーします。
    # cp /tmp/ex_svc.xml /lib/svc/manifest/site/ex_svc.xml
  5. 既存のサービスを停止します。
    # /etc/init.d/ex_svc stop
  6. 実行制御スクリプトを無効にします。

    該当する rc n.d ディレクトリからの実行制御スクリプトへのリンクを削除します。

  7. マニフェストをインポートし、サービスを開始します。
    # svcadm restart svc:/system/manifest-import