ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
マニュアルページセクション 1M: システム管理コマンド Oracle Solaris 11.1 Information Library (日本語) |
- サービスインスタンスの操作
/usr/sbin/svcadm [-v] enable [-rst] {FMRI | pattern}...
/usr/sbin/svcadm [-v] disable [-st] {FMRI | pattern}...
/usr/sbin/svcadm [-v] restart {FMRI | pattern}...
/usr/sbin/svcadm [-v] refresh {FMRI | pattern}...
/usr/sbin/svcadm [-v] clear {FMRI | pattern}...
/usr/sbin/svcadm [-v] mark [-It] instance_state {FMRI | pattern}...
/usr/sbin/svcadm [-v] delegate [-s] restarter_FMRI svc|inst_FMRI [ svc|inst_FMRI ... ]
/usr/sbin/svcadm [-v] milestone [-d] milestone_FMRI
svcadm は、サービス管理機能 (smf(5) を参照) 内で実行中のサービスに対するアクションの要求を発行します。サービスに対するアクションは、それに割り当てられているサービスリスタータエージェントによって実行されます。デフォルトのサービスリスタータは svc.startd です (svc.startd(1M) を参照)。
サポートしているオプションは、次のとおりです。
アクションを詳細形式で標準出力に出力します。
次に示すサブコマンドは、サービスインスタンスの一般的な管理に使用されます。
1 つ以上のオペランドを取るサブコマンドの場合、オペランドがサービスインスタンスではなくサービスを指定しており、かつそのサービスのインスタンスが 1 つだけ存在するときは、svcadm はそのインスタンスを操作します。省略形の FMRI (障害管理リソース識別子) またはパターンが複数のサービスに一致する場合は、警告メッセージが表示され、そのオペランドは無視されます。smf(5) を参照してください。
サービスに複数のインスタンスが存在する場合、svcadm はゼロ以外の終了ステータスを返します。
オペランドで指定されているサービスインスタンスを有効にします。割り当てられているリスタータは、各サービスインスタンスをオンライン状態にしようとします。このアクションには、サービスインスタンスの「general」プロパティーグループを変更するためのアクセス権が必要です (smf_security(5) を参照)。
-r オプションが指定されている場合、svcadm は各サービスインスタンスを有効にし、その依存関係を再帰的に有効にします。
-s オプションが指定されている場合、svcadm は各サービスインスタンスを有効にしたあと、各サービスインスタンスが online または degraded 状態になるまで待ちます。管理者の操作なしではサービスがこれらの状態に到達できないと判定した場合、svcadm は状態を待たずに戻ります。
-t オプションが指定されている場合、svcadm は各サービスインスタンスを一時的に有効にします。一時的な有効はリブートまでに限り継続します。このアクションには、サービスインスタンスの「restarter_actions」プロパティーグループを変更するためのアクセス権が必要です (smf_security(5) を参照)。デフォルトでは、enable はリブート後も永続します。
オペランドで指定されているサービスインスタンスを無効にします。割り当てられているリスタータは、各サービスインスタンスを無効状態にしようとします。このアクションには、サービスインスタンスの「general」プロパティーグループを変更するためのアクセス権が必要です (smf_security(5) を参照)。
-s オプションが指定されている場合、svcadm は各サービスインスタンスを無効にしたあと、各サービスインスタンスが無効状態になるまで待ちます。管理者の操作なしではサービスがこの状態に到達できないと判定した場合、svcadm は状態を待たずに戻ります。
-t オプションが指定されている場合、svcadm は各サービスインスタンスを一時的に無効にします。一時的な無効はリブートまでに限り継続します。このアクションには、サービスインスタンスの「restarter_actions」プロパティーグループを変更するためのアクセス権が必要です (smf_security(5) を参照)。デフォルトでは、disable はリブート後も永続します。
オペランドで指定されているサービスインスタンスの再起動を要求します。このアクションには、サービスインスタンスの「restarter_actions」プロパティーグループを変更するためのアクセス権が必要です (smf_security(5) を参照)。サービスの再起動は、ほとんどのリスタータではサービスの完全「停止」後の「起動」として実装されています。
このサブコマンドは、オンライン (online) 状態または機能低下 (degraded) 状態にあるサービスだけを再起動できます。それらの状態は、smf(5) に定義されています。
オペランドで指定されている各サービスインスタンスについて、サービスの実行中の構成のスナップショットを現在の構成の値で更新するよう、割り当てられているリスタータに要求します。これらの値の一部はすぐに有効になります (たとえば、依存関係の変更など)。その他の値は、次回のサービスの restart まで有効になりません。詳細については、リスタータおよびサービスのドキュメントを参照してください。
サービスが svc.startd(1M) によって管理されている場合は、refresh メソッドが存在していればそれが呼び出され、サービスに自身の構成を読み込み直すように要求します。その他のリスタータについては、リスタータのドキュメントを参照してください。
このアクションには、サービスインスタンスの「restarter_actions」プロパティーグループを変更するためのアクセス権が必要です (smf_security(5) を参照)。
オペランドで指定されている各サービスインスタンスについて、インスタンスが maintenance 状態の場合は、割り当てられているリスタータにサービスが修復されたことを通知します。インスタンスが degraded 状態の場合は、サービスを online 状態にするよう、割り当てられているリスタータに要求します。このアクションには、サービスインスタンスの「restarter_actions」プロパティーグループを変更するためのアクセス権が必要です (smf_security(5) を参照)。
次のサブコマンドは、サービス開発、より高いレベルのフレームワークによるサービスの管理、および一時的な管理操作のために使用されます。
特定の inst_FMRI のリスタータ割り当てを、restarter_FMRI で指定されたリスタータに変更します。特殊なトークン master は、委任リスタータをマスターリスタータ svc.startd(1M) に設定します。特殊なトークン reset は、リスタータのカスタマイズを削除することで、委任リスタータを元のファイル補助リスタータに戻します。再委託するには、再開操作を有効にする必要があります。すべてのリスタータで同じベースアプリケーションモデルがサポートされるわけではないため、可能などの委任でも、機能するサービスインスタンスが生成されるとは限りません。互換性を判定するための操作に関係する特定のリスタータについては、マニュアルページを参照してください。
リスタータが存在しないか、無効になっている場合、サービスインスタンスは委任されず、エラーが返されます。リスタータが存在しても、オフラインまたは保守モードになっている場合、インスタンスは委任されますが、オンライン状態に移行されない可能性があります。警告メッセージが出力されます。
-s オプションを指定すると、svcadm は、各サービスインスタンスを委任してから、各サービスインスタンスがオンライン状態になるまで待機するか、以前にオンラインだった場合、general/restarter プロパティーグループまたはプロパティーが更新されるまで待機します。管理者の介入なしでサービスがこれらの状態に達することができないと判定した場合、svcadm はすぐに戻ります。
instance_state が「maintenance」の場合、svcadm は、オペランドで指定されている各サービスについて、サービスを maintenance 状態にするよう、割り当てられているリスタータに要求します。各リスタータに対して実行されるアクションの詳細については、svc.startd(1M) および inetd(1M) を参照してください。
instance_state が「degraded」の場合、svcadm は、オペランドで指定されているサービスのうちオンライン状態のものについて、サービスを degraded 状態にするよう、サービスに割り当てられているリスタータに要求します。
-I オプションが指定されている場合、要求には「即時 (immediate)」としてフラグが設定されます。
-t オプションは保守要求にのみ有効です。このオプションが指定されている場合、要求には「一時 (temporary)」としてフラグが設定され、その効果は次回のリブートまでに限り継続します。
milestone_FMRI がキーワード「none」の場合は、マスターリスタータ svc:/system/svc/restarter:default を除くすべてのサービスが一時的に無効になります。
milestone_FMRI がキーワード「all」の場合は、すべてのサービスについて一時的な enable 要求および disable 要求が無効化されます。
milestone_FMRI が次のいずれかの場合:
svc:/milestone/single-user:default svc:/milestone/multi-user:default svc:/milestone/multi-user-server:default
指定されたサービスおよびそれが (直接または間接的に) 依存しているすべてのサービスについて、一時的な enable 要求および disable 要求が無効化されます。その他のサービスはすべて一時的に無効になります。
システムの現在のマイルストーンを milestone サブコマンドで変更する場合、システムの現在の実行レベルは変更されません。システムの実行レベルを変更するには、/usr/sbin/init を直接呼び出します。
このアクションには、svc:/system/svc/restarter:default サービスインスタンスの「options_ovr」プロパティーグループを変更するためのアクセス権が必要です (smf_security(5) を参照)。
-d オプションが指定されている場合は、要求されたマイルストーンへの変更がすぐに、前述のとおり実行されます。また、指定されたマイルストーンはデフォルトのブートマイルストーンとなり、リブート後も持続します。デフォルトのマイルストーンは、マスターリスタータ svc:/system/svc/restarter:default の options/milestone プロパティーで定義されます。このプロパティーが存在しない場合、デフォルトは「all」です。このアクションには、svc:/system/svc/restarter:default サービスインスタンスの「options」プロパティーグループを変更するためのアクセス権が必要です (smf_security(5) を参照)。
次のオペランドがサポートされています。
1 つまたは複数のインスタンスを指定する FMRI。インスタンス名を指定するか、サービス名の連続する部分を指定することにより、FMRI を省略形にすることもできます。たとえば、次のような FMRI を仮定します。
svc:/network/smtp:sendmail
この場合、次に示す省略形はすべて有効です。
sendmail :sendmail smtp smtp:sendmail network/smtp
これに対し、次のものは無効です。
mail network network/smt
FMRI がサービスを指定している場合、コマンドはそのサービスのすべてのインスタンスに適用されます。FMRI の省略形は不安定なので、スクリプトやその他の長期に渡って使用するツールには使用しないでください。
fnmatch(5) で説明されている展開規則に従ってサービスインスタンスの FMRI と照合されるパターン。このパターンが「svc:」で始まっていない場合は、 「svc: /」が先頭に付加されます。
省略形の FMRI またはパターンが複数のサービスに一致する場合は、警告メッセージが表示され、そのオペランドは無視されます。
例 1 サービスインスタンスの再起動
次のコマンドは NFS サーバーを再起動します。デフォルトのサービスインスタンスの完全な FMRI は次のとおりです。 svc:/network/nfs/server:default
ただし、完全な FMRI を次のような省略形にすることもできます。
# svcadm restart nfs/server
例 2 標準 HTTP サーバーの無効化
次のコマンドは、省略形の FMRI を使用して標準 HTTP サーバーを無効にします。
$ svcadm disable http
例 3 インスタンスおよびその依存インスタンスの有効化
次のコマンドは、foo:bar インスタンスおよびそれが依存しているすべてのインスタンスを有効にします。
$ svcadm enable -r foo:bar
例 4 インスタンスの同期的な有効化
次のコマンドは foo:bar インスタンスを有効にします。インスタンスがオンラインになるまで、あるいはサービスがオンライン状態に到達できないと svcadm が判定するまで、コマンドは戻りません。
$ svcadm enable -s foo:bar
例 5 実行中のサービスの制限と復元
次のコマンドは、実行中のサービスをシングルユーザーモードに制限します。
# svcadm milestone milestone/single-user
次のコマンドは、実行中のサービスを復元します。
# svcadm milestone all
次の終了ステータスが返されます。
正常終了。
致命的なエラーが発生しました。1 つ以上のエラーメッセージが標準エラーに表示されます。
無効なコマンド行オプションが指定された。
svcadm は、サービスインスタンス自体の問題により、待機中のサービスインスタンスが管理者の操作なしでは目的の状態に到達できないと判定しました。
svcadm は、サービスの依存関係の問題により、待機中のサービスインスタンスが管理者の操作なしでは目的の状態に到達できないと判定しました。
属性についての詳細は、マニュアルページの attributes(5) を参照してください。
|
対話型出力は「不確実」です。呼び出しおよび非対話型出力は「確実」です。
svcprop(1), svcs(1), inetd(1M), init(1M), svccfg(1M), svc.startd(1M), libscf(3LIB), contract(4), attributes(5), smf(5), smf_security(5)
svcadm がサービスおよびその依存関係の状態の変化を待機する時間は、それらのメソッドのタイムアウトによって暗黙に制限されます。たとえば、サービスがデフォルトのリスタータを使用している場合、その start メソッドがハングアップすると、タイムアウトの期限が切れたときサービスは保守状態に移行します。すると svcadm は、管理者の操作なしではこのサービスがオンライン状態に到達できないと判定します。
ファイルに (直接または間接的に) 依存しているサービスを同期的に有効にしようとすると、そのファイルの入っているディレクトリを検索するために必要な特権を呼び出し元が持っていない場合は、依存関係が満たされていないことを示す終了ステータスで失敗する場合があります。この制限事項は、Solaris の将来のリリースでは取り除かれる可能性があります。