svcs コマンドは、サービスインスタンスの状態およびステータスを一覧表示するためのプライマリコマンドです。
これらの例で示される状態については、サービス状態を参照してください。
使用例 1 有効なすべてのサービスの一覧表示オプションまたは引数を使用せずに svcs コマンドを実行すると、このシステムで有効になっているすべてのサービスインスタンスのほか、一時的に無効になっているインスタンスが表示されます。
この一覧表示で disabled 状態になっているサービスインスタンスは、次回のシステムブート時に有効になります。legacy_run 状態のインスタンスは SMF で管理されません。これらの旧バージョンのサービスに関する詳細は、構成ファイルと SMF サービスを参照してください。maintenance、degraded、または offline の状態のサービスがある場合は、サービス状態に関する詳細の取得を参照してください。
STIME 列には、一覧表示されている状態にインスタンスが移行した時間が表示されます。インスタンスが 24 時間以前にこの状態に移行した場合は、STIME 列には日付が表示されます。
$ svcs STATE STIME FMRI legacy_run Sep_09 lrc:/etc/rc2_d/S47pppd legacy_run Sep_09 lrc:/etc/rc2_d/S81dodatadm_udaplt legacy_run Sep_09 lrc:/etc/rc2_d/S89PRESERVE disabled Sep_09 svc:/system/vbiosd:default online Sep_09 svc:/system/early-manifest-import:default online Sep_09 svc:/system/svc/restarter:default ...使用例 2 インストールされているすべてのサービスの一覧表示
次回のブート時に自動的には有効にならない disabled インスタンスを含め、このシステムにインストールされているすべてのサービスインスタンスを一覧表示するには、svcs -a コマンドを使用します。
$ svcs -a
一覧表示された状態から別の状態に遷移しているサービスインスタンスの場合、アスタリスク (*) がその状態に付加されます。たとえば offline* であれば、インスタンスがまだその起動メソッドを実行していると考えられます。
疑問符 (?) は、状態が存在しないか認識されない場合に表示されます。
使用例 3 サービスのすべてのインスタンスの一覧表示サービス名を指定して svcs コマンドを実行すると、サービスのすべてのインスタンスが一覧表示されます。-o オプションの詳細は、選択したサービス情報の表示を参照してください。
$ svcs -Ho inst identity node domain
svcs -l コマンドを実行すると、指定したサービスインスタンスごとの長いリストが表示され、ここには、インスタンス状態、インスタンスのログファイルおよび構成ファイルへのパス、依存関係タイプ、依存関係再起動属性値、および依存関係状態に関する詳細が示されます。次の例では、このサービスインスタンスの必要な依存関係がすべてオンラインになっていることを示します。無効になっている 1 つの依存関係は、オプションの依存関係です。依存関係タイプと再起動属性値の詳細は、サービス依存関係の表示を参照してください。svcs -l の出力で、サービス状態で説明しているもの以外の状態が、依存関係の状態である可能性があります。詳細は、svcs(1) のマニュアルページを参照してください。次の例では、指定したサービスインスタンスが一時的に有効になっており、オンラインであり、サービスが契約タイプのサービスであることも示しています。サービスタイプの定義については、サービスモデルを参照してください。offline* のように状態値の後ろにアスタリスクが続いている場合、インスタンスは遷移中であり、次の状態を表すフィールドには none ではなく状態値が示されます。state_time は、一覧表示されている状態にインスタンスが移行した時間です。
$ svcs -l net-snmp fmri svc:/application/management/net-snmp:default name net-snmp SNMP daemon enabled true (temporary) state online next_state none state_time September 17, 2013 05:57:26 PM PDT logfile /var/svc/log/application-management-net-snmp:default.log restarter svc:/system/svc/restarter:default contract_id 160 manifest /etc/svc/profile/generic.xml manifest /lib/svc/manifest/application/management/net-snmp.xml dependency require_all/none svc:/system/filesystem/local (online) dependency optional_all/none svc:/milestone/name-services (online) dependency optional_all/none svc:/system/system-log (online) dependency optional_all/none svc:/network/rpc/rstat (disabled) dependency require_all/restart svc:/system/cryptosvc (online) dependency require_all/restart svc:/milestone/network (online) dependency require_all/refresh file://localhost/etc/net-snmp/snmp/snmpd.conf (online) dependency require_all/none svc:/milestone/multi-user (online)使用例 4 契約サービスによって開始されたプロセスの表示
svcs -p コマンドを使用すると、契約サービスインスタンスによって開始されたプロセスのプロセス ID とコマンド名が表示されます。net-snmp サービスは、一連の管理情報ベース (MIB) を通じてシステムに関する情報を収集する /usr/sbin/snmpd SNMP エージェントを管理します。
$ svcs -p net-snmp STATE STIME FMRI online 17:57:26 svc:/application/management/net-snmp:default 17:57:26 5022 snmpd使用例 5 プロセス停止後に自動的に再起動する契約サービスの表示
契約サービスインスタンスは、契約が空になると自動的に再起動します。SMF は、ハードウェアまたはソフトウェアの障害イベントからの自動復旧の一環として、契約サービスインスタンスに関連したプロセスの再起動を試みます。次の例では、/usr/sbin/snmpd プロセスが強制終了されたあとに、新しいプロセス ID で自動的に再起動されています。net-snmp:default インスタンスはオンラインのままですが、開始時間が新しくなっています。
$ kill 5022 $ svcs -p net-snmp STATE STIME FMRI online 17:57:59 svc:/application/management/net-snmp:default 17:57:59 5037 snmpd
svcs コマンドによる出力は、ほかのコマンドにパイピングしたりスクリプトで使用する場合に非常に役立ちます。svcs コマンドでは、-o オプションを使用して、必要な情報の列とその列の順序を指定できます。たとえば、サービス名とインスタンス名 (別々の列)、サービスの現在の状態と次の状態、契約 ID などを出力できます。-s オプションおよび -S オプションで、1 つ以上の列について出力のソート順を指定できます。使用可能な列のリストについては、svcs(1) のマニュアルページの「COLUMNS」セクションを参照してください。複数の -s オプションが指定された場合は、相加的に動作します。
定期的なサービスでは、3 つの追加情報が表示されることがあります。定期的なサービスについては、Oracle Solaris 11.3 でのシステムサービスの開発 の 第 3 章, 定期的に実行するサービスの作成および svc.periodicd(1M) のマニュアルページを参照してください。
この定期的なサービスインスタンスの起動メソッドが実行された最終時間。定期的ではないサービスインスタンスでは、この列にハイフン文字 (-) が表示されます。
この定期的なサービスインスタンスの起動メソッドの実行がスケジュールされている次の時間。定期的ではないサービスインスタンスでは、この列にハイフン文字 (-) が表示されます。
サービスインスタンスの補助状態。定期的なインスタンスではないサービスインスタンスは、このプロパティーを使用して、インスタンスが最新の遷移を行なった理由を表示します。このプロパティーの値は通常、インスタンスが offline から online 状態に遷移した理由であるため、定期的なインスタンスではないインスタンスではほとんど常に、その値として dependencies_satisfied が表示されます。定期的なサービスインスタンスでは、インスタンスが起動メソッドの実行を待機しているかどうかを示す running または scheduled のいずれかがこの列に表示される可能性があります。詳細は、Oracle Solaris 11.3 でのシステムサービスの開発 の periodic_method 要素の指定を参照してください。