Print-friendly Version
Solaris 10 OS で注目の機能: 予測的自己修復
執筆者: Amy Rich (2004 年 11 月)
目次
従来、Solaris システム上でハードウェアまたはソフトウェア障害が発生すると、通常は /etc/syslog.conf で指定された適切なデバイスのログにメッセージが記録されて、修復は管理者に任されていました。 予測的自己修復テクノロジは、Solaris 10 OS で導入されたもので、Solaris プログラムの Software Express でプレビューを見ることができます。 予測的自己修復は、ソフトウェアとハードウェアの障害条件を自動的に診断、レポート、および処理するために新たに設計された、包括的なアーキテクチャーおよび方法論です。 この新しい技術により、ハードウェアまたはソフトウェアの問題のデバッグにかかる時間が短縮され、管理者や Sun のテクニカルサポートにそれぞれの障害に関する詳細なデータが提供されます。 このアーキテクチャーは、イベント管理プロトコル、Fault Manager、およびソフトウェア障害処理ソフトウェアの Solaris Service Manager によって構成されています。
Solaris Fault Manager
ハードウェア障害が発生すると、予測的自己修復はバイナリのテレメトリイベントを発行して、従来の syslog メッセージを拡張します。次にこのテレメトリイベントは、基本となるソフトウェアによって相互に関連付けられます。 この基本となるソフトウェアは次に障害を自動的に診断し、管理者に通知して、可能な場合は修正措置を取ります。 Sun の Fault Manager はフォルトコードも提供しており、http://www.sun.com/msg/ に該当する知識ベースの記事がある場合は、管理者にそれを示します。 Sun の Fault Manager の最初の実装は、さまざまな SPARC CPU、メモリ、および I/O バス連結コンポーネントに対応しています。 今後のリリースには、x86 プラットフォーム上の Solaris OS 用のモジュールも含まれる予定です。
システム管理者の Sun Fault Manager との最初の対話は、Fault Manager デーモン (fmd(1M)) によって行われます。fmd(1M) はブート時に起動して、背景に分岐し (詳細は、fmd(1M) のマニュアルページを参照)、動作中のシステムの監視を継続します。 コンポーネントでエラーが発生すると、障害管理システムはまずエラーを処理し、次に根底にある障害を診断して対応できるように、エラー報告データを以前のエラー報告やほかの必要な情報と関連付けます。 診断を実行したら、Fault Manager は問題にシステムのあらゆるセットにわたって問題を区別する、汎用一意識別子 (UUID) を割り当てます。 可能な場合は、fmd(1M) は次に障害の起きたコンポーネントを自己修復する手順を開始します。 fmd(1M) プログラムはさらに障害を syslogd に記録し、必要に応じて管理者に通知します。
障害管理リソース識別子
障害管理リソース識別子 (FMRI) は、障害およびエラーイベントの伝播のために Fault Manager 内のリソースを識別します。 FMRI が URI サブクラスとなる Fault Manager の命名スキーマは、RFC 2396 で定義された URI 構文に基づいています。FMRI 構文には任意の数のさまざまなスキーマがあり、それぞれが関連リソースのツリーを命名しています。 FMRI は、URI 文字列またはコンポーネントの名前と値のペアとして表されます。 たとえば、Sun Fire 15K サーバーのドメイン A のシステムボード 3 にあるメモリーモジュール 2 の メモリーバンク 1 の DIMM 0 の FMRI は、次のような URI 文字列として表されます。 (注: 実際に使用する場合は、改行しないでください。)
hc://chasis-id=138A2036,product-id=SunFire15000,domain-id=A/system-board=3/cpu-
module=2/memory-bank=1/dimm=0
またはコンポーネント名ペア:
名前
値
タイプ
Name
Value
Type
scheme
hc
string
authority
chassis-id: 138A2036 product-id: SunFire15000 domain-id: A
authority
system-board
3
uint32_t
cpu-module
2
uint32_t
memory-bank
1
uint32_t
dimm
0
uint32_t
Fault Manager はあらゆる FMRI に次の状態のいずれかを関連付けます。
ok: リソースが存在し、使用中で、既知の問題はありません。
unknown: リソースは存在しないか、使用できませんが、既知の問題はありません。 これは、管理者によってリソースが使用不能にされているか、構成されていないことを示す場合があります。
degraded: リソースは存在し、使用できますが、1 つまたは複数の問題が診断されています。
faulted: リソースは存在しますが、1 つまたは複数の問題が診断されているため、使用できません。 リソースは、システムにさらに損傷を与えるのを防ぐために使用不能になっており、人為的な操作が必要です。
Fault Manager コマンド行ツール
Solaris の Fault Manager の実装には、fmd(1M) およびそのモジュールの動作を観察し、修正するためにいくつかのコマンド行ツールが含まれています。 管理者が使用するもっとも一般的なツールは、fmadm(1M)、fmdump(1M)、および fmstat(1M) ツールです。
fmadm(1M) ユーティリティを使用して、モジュールを表示、ロード、およびアンロードし、リソースのキャッシュを表示および更新することができます。 このユーティリティにより、システム管理者は、fmd(1M) によって障害があると見なされるすべてのリソースを表示できます。 もっとも一般的な fmadm(1M) サブコマンド (詳細は、fmadm(1M) のマニュアルページを参照) は次のとおりです。
config: 各コンポーネントモジュールの構成 (モジュール名、バージョン、および説明など) を表示します。
faulty [-ai]: 現在、障害が発生していると考えられるリソースの一覧を表示します。 診断の FMRI、リソースの状態、および UUID がリソースごとに表示されます。 fmadm faulty コマンドは、デフォルトでは、現在存在していて障害のあるリソースの出力だけを表示します。 -a オプションを指定すると、システムにすでに存在しないコンポーネントの情報も含めて、Fault Manager によってキャッシュされたすべてのリソース情報が表示されます。 -i オプションを指定すると、いちばん最近の状態および UUID の代わりに Fault Manager 内の各リソースの持続的なキャッシュ ID が表示されます。
load path: 指定されたモジュールをロードします。 指定されたパスは絶対パスでなければならず、またモジュールで定義されたディレクトリのいずれかに存在するモジュールを参照している必要があります。
unload module: 指定されたモジュールをアンロードします。 モジュール名は、fmadm config 出力で指定されたモジュール名です。 Fault Manager は、通常、システム構成に基づいて、モジュールを自動的にロードおよびアンロードします。このため、このコマンドを使用することはほとんどないはずです。
rotate errlog | fltlog: 指定された Fault Manager ログファイルのローテーションをスケジュールします。 ログファイルは、このサブコマンドを使用する logadm(1M) 構成ファイルにあるエントリによって自動的にローテーションされます。
fmdump(1M) プログラムを使用して、システム管理者は fmd(1M) に関連付けられたログファイルを表示し、診断の固有の詳細を取得することができます。 デフォルトでは、fmdump(1M) コマンドにより障害ログが表示されますが、-e コマンド行スイッチが付与されている場合、エラーログが表示されます。 fmdump(1M) コマンドは、特定のイベントだけを選択するためにコマンド行オプションを取ることもできます (詳細は、fmdump(1M) マニュアルページを参照)。
-c class: 指定したクラスに合致するイベントを選択します。
-t time: 指定した時間後に発生したイベントを選択します。
-T time: 指定した時間より前に発生するイベントを選択します。
-U UUID: 指定した UUID に合致するイベントを選択します。
どのコマンドでも -v または -V を指定すると、さらに詳細な出力が得られます。
fmstat(1M) プログラムは、障害管理システムの統計情報をレポートするように設計されています。 -m module 引数が指定されている場合、fmstat(1M) は指定されたモジュールによって保持されている統計情報をレポートします。 -m が指定されていない場合、fmstat(1M) はモジュールごとに次の統計情報をレポートします (詳細は、fmstat(1M) のマニュアルページを参照)。
module: fmadm config によってレポートされるモジュールの名前
ev_recv: モジュールによって受け取られるイベント数
ev_acpt: 診断に関連して、モジュールによって受け入れられるイベント数
wait: モジュールによる診断を待機する平均イベント数
svc_t: モジュールによって受け取られるイベントの平均サービス時間 (ミリ秒)
%w: 処理待機中のイベントがあった時間のパーセンテージ
%b: モジュールがイベントの処理でビジー状態にあった時間のパーセンテージ
open: モジュールによって所有される有効なケース数
solve: モジュールがロードされてから、モジュールによって解決されたケース数
memsz: 現在モジュールによって割り当てられている動的メモリーの量
bufsz: 現在モジュールによって割り当てられている持続的なバッファー容量
予測的自己修復 Fault Manager の例
CPU に障害が発生すると、管理者は次のメッセージがコンソールに表示されたり、syslog に記録されたりするのを目にする場合があります。
SUNW-MSG-ID: SUN4U-8000-6H, TYPE: Fault, VER: 1, SEVERITY: Major
EVENT-TIME: Sun Oct 17 14:15:50 PDT 2004
PLATFORM: SUNW,Sun-Blade-1000, CSN: -, HOSTNAME: myhost
EVENT-ID: 64fe6c23-12b7-ccd1-f0a7-b531941738f8
DESC: The number of errors associated with this CPU has exceeded acceptable levels.
Refer to http://sun.com/msg/SUN4U-8000-6H for more information.
AUTO-RESPONSE: An attempt will be made to remove the affected CPU from service.
IMPACT: Performance of this system may be affected.
REC-ACTION: Schedule a repair procedure to replace the affected CPU. Use fmdump
-v -u <EVENT_ID> to identify the CPU.
CPU の状態は、ok から faulted に変わり、CPU を使用する処理が終了し、CPU はオフラインになります。 CPU の状態は、psrinfo(1M) コマンドを使用して表示できます。
psrinfo
0 on-line since 09/27/2004 16:57:30
1 faulted since 10/17/2004 14:15:50
障害メッセージ表示された fmdump(1M) コマンドを実行し、障害についての詳細を表示するには、EVENT-ID を使用します。 この出力には、CPU 1 に問題があり、Slot 1 のコンポーネントの交換が必要なことが示されています。 障害のある場所を示すテキスト Slot 1 は、マザーボード上にシルクスクリーン印刷されます。
fmdump -v -u 64fe6c23-12b7-ccd1-f0a7-b531941738f8
TIME UUID SUNW-MSG-ID
Oct 17 14:15:50.1630 64fe6c23-12b7-ccd1-f0a7-b531941738f8 SUN4U-8000-6H
100% fault.cpu.ultraSPARC-III.l2cachedata
FRU: hc:///component=Slot 1
rsrc: cpu:///cpuid=1/serial=1107C270C8A
交換用の CPU が届けられると、Slot 1の故障した CPU を交換して、再度使用できるようになります。
Solaris Service Manager
ソフトウェア障害をより効率的に処理するために、Sun は、サービスを開始して監視する方法を設計し直しました。 従来の /etc/init.d 起動スクリプトの代わりに、Solaris 10 OS の多くのプログラムは Solaris Service Manager のサービス管理フレームワーク (smf) を使用して、プログラムを開始、停止、修正、および監視するように変換されました。 Service Manager は、ソフトウェアの相互依存性を識別し、サービスが正しい順序で開始されていることを確認するために使用されます。 sendmail などのサービスが突然停止すると、Service Manager は sendmail サービスのすべての要求が実行されていることを自動的に検証して、必要なプログラムをもう一度生成します。 ハードウェア障害が発生して、ハードウェアがオフラインになると、Service Manager はハードウェアをサービスから削除するために停止する必要があった Service Manager で管理されているプログラムを再起動できます。
Service Manager で管理されている各サービスは、マニフェストと呼ばれる XML 構成ファイルで制御されています。マニフェストは、サービスの名前、タイプ、依存性、およびその他の重要な情報を定義します。 これらのマニフェストは、リポジトリに保存され、リポジトリデーモン (svc.configd(1M)) によって表示および変更できます。 リポジトリは、マスターリスタータデーモン (svc.startd(1M)) によって読み取られ、このデーモンが依存性を評価して、必要に応じてサービスを開始します。 従来の inetd サービスは、Service Manager の一部となりました。 すべての inetd サービスは、ほかの Service Manager 対応のプログラムと同じメカニズムによって、有効化、無効化、または再起動することができます。
Service Manager コマンド行ツール
Service Manager は多数のプログラムから構成されており、その一部は管理者がサービスおよびサービスのプロパティーを表示して管理するために使用することを目的としています。 このようなコマンドには、svcadm(1M)、svcprop(1)、svcs(1)、および svccfg(1M) があります。 さらに、従来の inetd サービスの移行を支援し、それらを Service Manager の枠内で管理するために、inetconv(1M) および inetadm(1M) コマンドがあります。
svcadm(1M) コマンドによって、サービス構成リポジトリ内のサービスインスタンスの有効化、無効化、および状態操作が行えます。 これらのプロパティーを変更すると、委任されたリスタータが、サービスインスタンスを適切な状態に移動させる操作を実行します。 サービスが委任されていない場合、マスターリスタータがこれらの機能を実行します。 -v スイッチにより、詳細情報が標準出力に印刷されます。 svcadm(1M) の有効なサブコマンドは次のとおりです。
disable [-t] [FMRI | pattern]: オペランドによって指定されたサービスインスタンスを無効にします。 -t オプションを指定すると、インスタンスは再起動時に以前の有効な設定に戻ります。以前の設定が無効になっていた場合もあります。
enable [-rt] [FMRI | pattern]: オペランドによって指定されたサービスインスタンスを有効にします。 -r オプションを指定すると、インスタンスが有効になり、依存性も再帰的に有効になります。 -t オプションを指定すると、インスタンスは再起動時に以前の有効な設定に戻ります。(以前の設定が有効になっていた可能性もあります。)
refresh [FMRI| pattern]: オペランドによって指定されたサービスインスタンスを更新します。 このインスタンスは、構成をもう一度読み込む必要があります。
restart [FMRI| pattern]: オペランドによって指定されたサービスインスタンスを再起動します。
delegate restarter_FMRI [FMRI | pattern]: 所定のインスタンスのリスタータの割り当てを restarter_FMRI プロパティーによって指定されたリスタータに変更します。 インスタンスをもう一度 svc.startd(1M) に委任すると、これと同等の操作になります。 もう一度委任するには、操作を再起動して有効にする必要があります。 すべてのリスタータが同じ基本アプリケーションモデルをサポートしているわけではありません。 このため、実行可能な委任のすべてでサービスインスタンスが機能するわけではありません。
mark [-It] instance_state [FMRI| pattern]: オペランドによって指定されたサービスインスタンスを、指定された instance_state (degraded および maintenance のいずれか) に移動させます。 degraded 状態に移行させるには、サービスがオンライン状態でなければなりません。 -I オプションを指定すると、サービスインスタンスは指定された状態にすぐに移動します。 -t オプションを指定した場合、移動は一時的になります。 現在のシステムインスタンスの有効期間中だけ、移動します。 degraded 状態の場合、一時的な移動オプションは使用できません。
milestone [-d] milestone_FMRI: システムを指定したマイルストーンに移動させます。 所定のマイルストーンが直接または間接に依存しないサービスはすべて一時的に無効になります。 -d オプションを指定すると、所定のマイルストーンがデフォルトの最終マイルストーンになり、再起動中も持続します。
clear [FMRI| pattern]: maintenance 状態のサービスの場合、各オペランドによって指定されたサービスインスタンスを uninitialized 状態にすると、オンラインに戻すことができるようになります。 mark サブコマンドで degraded 状態に置かれたサービスの場合、サービスをオンライン状態に戻します。
svcprop(1) プログラムによって、サービス構成リポジトリ内のプロパティーの値が印刷されます。 プロパティーは、-p オプションと FMRI オペランドによって選択されます。 デフォルトでは、1 つのプロパティーを選択すると、その値がスペースで分けられて、1 行に印刷されます。 サポートされているオプションは次のとおりです。
-c: 現在のプロパティー値を構成なしで取得します。
-f: FMRI によってプロパティーを指定します。 -t オプションを含みます。
-p [name/]name: オペランドで指定されたプロパティーグループ、インスタンス、またはサービスごとに指定したプロパティーまたはプロパティーの値を印刷します。
-q: 非出力モード。 出力しません。
-s snapshot: 指定したスナップショットを使用して、指定されたプロパティーまたはプロパティーグループを取得します。 所定のプロパティー値がスナップショットにない場合、現在のプロパティー値が検討されます。
-t: マルチプロパティー出力形式を使用します。
-v: 冗長。 -q オプションも使用していても、存在しないプロパティーのエラーメッセージを印刷します。
-w: 印刷する前に、選択したプロパティーグループまたはプロパティーが変わるのを待ちます。
svcs(1) コマンドにより、サービス構成リポジトリに記録されたサービスインスタンスに関する情報が表示されます。 svcs(1) コマンドには、3 種類の異なる形式があります。
svcs [-aHpv?] [-o col[,col]...] [-R instance_FMRI]...
[-sS col]... [FMRI | pattern] ...
svcs {-d | -D} [-Hpv?] [-o col[,co= l]...] [-sS col]...
[FMRI | pattern] ...
svcs -l [FMRI | pattern] ...
1 番目の形式では、引数で指定されたサービスインスタンスの 1 行のステータスリストが印刷されます。 各インスタンスは一度だけ表示され、引数はありません。一時的に無効になったものを含め、有効なサービスインスタンスがすべて表示されます。 2 番目の形式のコマンドでは、引数で指定されたサービスインスタンスの依存性または依存の 1 行のステータスリストが印刷されます。 3 番目の形式では、特定のサービスおよびインスタンスの詳細情報が印刷されます。 上記の 3 つのコマンドのオプションの説明は次のとおりです。
-?: 列指示子などの詳細な使用法のメッセージを表示します。
-a: 無効なサービスインスタンスも選択します。
-d: 所定のサービスインスタンスが依存するサービスまたはサービスインスタンスを表示します。
-D: 所定のサービスまたはサービスインスタンスに依存するサービスインスタンスを表示します。
-H: 列ヘッダを除外します。
-l: 各行に 1 つのサービス属性を表示して、選択したサービスおよびサービスインスタンスに関して利用できる情報をすべて表示します。 異なるインスタンスの情報は、空白行で分けられています。
-o col[,col]...: 指定した列を印刷します。 それぞれの col が列名でなければなりません。
-p: 各サービスインスタンスに関連したプロセスの一覧を表示します。 サービスインスタンスに関連プロセスがない場合もあります。 各プロセスのプロセス ID、開始時間、およびコマンド名 (ps(1)のPID、STIME、および CMD フィールド) が表示されます。
-R instance_FMRI: 指定したサービスインスタンスをリスタータとして持つサービスインスタンスを選択します。
-s col: 出力を列でソートします。col は列名でなければなりません。 複数のオプションが付加的に動作します。
-S col: オプションとして、col で逆順にソートします。
-v: 冗長列 (STATE、NSTATE、STIME、CTID、および FMRI) を表示します。
svcs(1) コマンドで使用される列名は大文字と小文字が区別されます。次に例を示します。
CTID: サービスインスタンスの主契約 ID (存在する場合)。
DESC: テンプレート要素からのサービスの簡単な説明。 サービスで説明を利用できない場合があります。その場合は、ハイフンを使用して空の値を表します。
FMRI: サービスインスタンスの FMRI。
INST: サービスインスタンスのインスタンス名。
NSTA: STA 列の説明で指定されるサービスインスタンスの次の状態の略称。 ハイフンはインスタンスが移行中でないことを示し、それ以外の場合は STA と同じです。
NSTATE: サービスの次の状態。 ハイフンはインスタンスが移行中でないことを示すために使用され、それ以外の場合は STATE と同じです。
SCOPE: サービスインスタンスのスコープ名。
SVC: サービスインスタンスのサービス名。
STA: サービスインスタンスの省略された状態。
STATE: サービスインスタンスの状態。 NSTA または NSTATE 列も表示されている場合以外は、移行中のインスタンスにアスタリスクが付加されます。
STIME: 過去 24 時間以内にサービスインスタンスが現在の状態に入った場合は、この列にはその時間が表示されます。 それ以外の場合、この列には現在の状態に入った日付が表示され、空白の場所にアンダースコアが付いて印刷されます。
svccfg(1M) コマンドは、リポジトリ内のサービスの構成をインポート、エクスポート、および修正するために使用されます。 サブコマンドを指定するか、一連のサブコマンドを含むコマンドファイルを指定することによって、対話形式で起動できます。 次の 3 つの形式で起動されます。
/usr/sbin/svccfg [-v]
/usr/sbin/svccfg [-v] subcommand [args...]
/usr/sbin/svccfg [-v] -f command-file
利用可能なサブコマンドの詳細は、svccfg(1M) のマニュアルページをお読みください。
inetconv(1M) プログラムは、inetd.conf エントリを smf(5) マニフェストに変換し、それらをリポジトリにインポートします。 指定された入力ファイルのサービス行と生成された結果の構成ファイルには 1 対 1 の対応があります。 デフォルトでは、構成ファイルは次のテンプレートを使用して命名されます。
<svcname>-<proto>.xml
<svcname> トークンはサービスの名前に置き換えられ、<proto> トークンはサービスのプロトコルに置き換えられます。 サービス名またはプロトコルにあるフォワードスラッシュ文字は、アンダースコアに置き換えられます。 結果のマニフェストには、それぞれサービス行がコメントとして含まれます。 変換プロセス中にサービス行の形式が正しくないことが見つかったり、内部 inetd サービス用であることが見つかった場合、マニフェストは生成されず、そのサービス行は入力ファイル内でスキップされます。 inetconv(1M) プログラムは、次のコマンド行オプションを受け入れます。
-?: 使い方のメッセージを表示します。
-e: 入力ファイルで有効になっている smf(5) サービスを有効にします。
-f: 生成されるサービスマニフェストと同じ名前のサービスマニフェストが宛先ディレクトリに見つかった場合、このオプションを指定すると inetconv(5) がそのマニフェストを上書きします。 それ以外の場合、エラーメッセージが生成されて、サービスの変換が実行されます。
-i srcfile: 代替入力ファイル (srcfile) を指定できます。 このオプションが指定されていない場合、inetd.conf(4) ファイルが入力として使用されます。
-n: 変換プロセス中に生成されたマニフェストの自動インポートをオフにします。 あとで、生成したマニフェストを smf(5) リポジトリにインポートする場合、svccfg(1M) ユーティリティを使用してインポートできます。
-o destdir: 生成した構成ファイルの代替宛先ディレクトリ (destdir) を指定できます。 このオプションが指定されていない場合、RPC サービスでは /var/svc/manifest/network/rpc に置かれ、それ以外の場合は、/var/svc/manifest/network に置かれます。
inetadm(1M) プログラムは inetd 制御サービスを表示し、構成します。 サポートされているオプションは次のとおりです。
-?: 使い方のメッセージを表示します。
-l FMRI: 指定されたサービスインスタンスのすべてのプロパティーを name=value ペアで一覧表示します。 さらに、プロパティー値が inetd によって提供されるデフォルト値から継承されている場合、name=value ペアはトークン (デフォルト) によって識別されます。 プロパティーの継承は、プロパティーが指定したサービスインスタンスのデフォルトを持たない場合に行われます。
-e FMRI: 指定されたサービスインスタンスを有効にします。
-d FMRI: 指定されたサービスインスタンスを無効にします。
-p: inetd によって name=value ペアの形式で提供されるデフォルトの inet サービスプロパティー値をすべて表示します。 値がブールタイプの場合、TRUE または FALSE で表示されます。
-m FMRI property_name=value [property_name=value...]: 識別されたサービスインスタンスの指定されたプロパティーの値を変更します。 プロパティーは、空白スペースで分けた name=value ペアで指定されます。 インスタンス固有の値を削除し、プロパティーのデフォルト値を受け入れる場合は、値なしでプロパティーを指定するだけです。
-M property_name=value [property_name=value...]: 指定された inetd デフォルトプロパティーの値を変更します。 プロパティーは、空白スペースで分けた name=value ペアで指定されます。
予測的自己修復 Service Manager の例
svcs(1) を使用して、システム上のサービスを表示します。
svcs
....
online Oct_31 svc:/system/filesystem/local:default
online Oct_31 svc:/network/rpc/bind:default
online Oct_31 svc:/system/cron:default
online Oct_31 svc:/system/sac:default
online Oct_31 svc:/system/system-log:default
online Oct_31 svc:/network/inetd:default
online Oct_31 svc:/network/nis/client:default
online Oct_31 svc:/network/rpc/keyserv:default
online Oct_31 svc:/network/rpc/gss:ticotsord
online Oct_31 svc:/network/security/ktkt_warn:ticotsord
online Oct_31 svc:/milestone/multi-user:default
....
サービスとプロセスの関係を見つけるには、svcs -p を使用します。 この例では、NFS サーバーサービスを示しています。
svcs -p nfs/server
STATE STIME FMRI
online Oct_12 svc:/network/nfs/server:default
Oct_31 103729 mountd
Oct_31 103731 nfsd
サービスに問題がある場合、Service Manager のツールを使用して、問題を診断し、問題を修正するための推奨手段を確認することができます。 たとえば、svcs -x オプションでは、実行されていないすべてのサービスに関する情報とその理由の一覧が表示されます。
svcs -x
svc:/application/print/server:default (LP Print Service)
State: disabled since Tue Oct 05 22:27:55 2004
Reason: Disabled by an administrator.
See: http://sun.com/msg/SMF-8000-05
See: lpsched(1M)
Impact: 1 service is not running.
http://www.sun.com/msg/ に、問題のタイプに関する追加の情報が提供され、追加のデータを入手して問題を修正するための手順が示されています。
SMTP サーバーのプロパティーを表示して、その依存性を調べるには、svccfg(1) を使用します。
svccfg
svc:> select network/smtp
svc:/network/smtp> listprop
system-log dependency
system-log/entities fmri svc:/system/system-log
system-log/grouping astring optional_all
system-log/restart_on astring none
system-log/type astring service
identity dependency
identity/entities fmri svc:/system/identity:domain
identity/grouping astring require_all
identity/restart_on astring refresh
identity/type astring service
name-services dependency
name-services/entities fmri svc:/milestone/name-services
name-services/grouping astring require_all
name-services/restart_on astring refresh
name-services/type astring service
network-service dependency
network-service/entities fmri svc:/network/service
network-service/grouping astring require_all
network-service/restart_on astring none
network-service/type astring service
fs-local dependency
fs-local/entities fmri svc:/system/filesystem/local
fs-local/grouping astring require_all
fs-local/restart_on astring none
fs-local/type astring service
general framework
general/entity_stability astring Unstable
general/single_instance boolean true
参考資料