Go to main content

マニュアルページ セクション 8: システム管理コマンド

印刷ビューの終了

更新: 2018年8月8日
 
 

svcadm(8)

名前

svcadm - サービスインスタンスの操作

形式

/usr/sbin/svcadm [-v] enable [
-rt] [-s [-T timeout
]] {FMRI | pattern}...
/usr/sbin/svcadm [-v] disable [
-t] [-s [-T timeout]] {
FMRI | pattern}...
/usr/sbin/svcadm [-v] restart [
-s [-T timeout]] {
FMRI | pattern}...
/usr/sbin/svcadm [-v] refresh [
-s [-T timeout]] {
FMRI | pattern}...
/usr/sbin/svcadm [-v] clear [
-s [-T timeout]] {
FMRI | pattern}...
/usr/sbin/svcadm [-v] goals [-s [-T timeout]] [-g goal_FMRI ]
 {-c | FMRI ...}
/usr/sbin/svcadm [-v] mark [
-It] [-s [-T timeout
]] instance_state 
     {FMRI | pattern}...
/usr/sbin/svcadm [-v] delegate [-s [-T 
timeout]] restarter_FMRI svc
|inst_FMRI
     [ svc|inst_FMRI ... ]
/usr/sbin/svcadm [-v] milestone [
-d] [-s [-T timeout]] 
milestone_FMRI 

説明

svcadm は、サービス管理機能 (smf(7) のマニュアルページを参照) 内で実行中のサービスに対するアクションの要求を発行します。サービスに対するアクションは、それに割り当てられているサービスリスタータエージェントによって実行されます。デフォルトのサービスリスタータは svc.startd です。詳細は、svc.startd(8) のマニュアルページを参照してください。

オプション

サポートしているオプションは、次のとおりです。

–v

アクションを詳細形式で標準出力に出力します。

サブコマンド

一般的な操作

次に示すサブコマンドは、サービスインスタンスの一般的な管理に使用されます。

1 つ以上のオペランドを取るサブコマンドの場合、オペランドがサービスインスタンスではなくサービスを指定しており、かつそのサービスのインスタンスが 1 つだけ存在するときは、svcadm はそのインスタンスを操作します。省略形の FMRI (障害管理リソース識別子) またはパターンが複数のサービスに一致する場合は、警告メッセージが表示され、そのオペランドは無視されます。詳細は、smf(7) のマニュアルページを参照してください。

サービスに複数のインスタンスが存在する場合、svcadm はゼロ以外の終了ステータスを返します。

enable [–rt ] [–s [–T timeout]] {FMRI | pattern}. . .

オペランドで指定されているサービスインスタンスを有効にします。割り当てられているリスタータは、各サービスインスタンスをオンライン状態にしようとします。このアクションには、サービスインスタンスの「general」プロパティーグループを変更するためのアクセス権が必要です (smf_security(7) のマニュアルページを参照)。

–r オプションが指定されている場合、svcadm は各サービスインスタンスを有効にし、その依存関係を再帰的に有効にします。

–s オプションが指定されている場合、svcadm は各サービスインスタンスを有効にしたあと、各サービスインスタンスが online または degraded 状態になるまで待ちます。管理者の操作なしではサービスがこれらの状態に到達できないと判定した場合、svcadm は状態を待たずに戻ります。

–t オプションが指定されている場合、svcadm は各サービスインスタンスを一時的に有効にします。一時的な有効はリブートまでに限り継続します。このアクションには、サービスインスタンスの「restarter_actions」プロパティーグループを変更するためのアクセス権が必要です (smf_security(7) のマニュアルページを参照)。デフォルトでは、enable はリブート後も永続します。

–T オプションが –s オプションとともに指定された場合、svcadm は同期操作が完了するのを timeout 秒間待機します。timeout 秒が経過しても、アクションがまだ継続する可能性がある場合、svcadm は状態を待たずに戻ります。

disable [–t] [– s [–T timeout ]] {FMRI | pattern }. . .

オペランドで指定されているサービスインスタンスを無効にします。割り当てられているリスタータは、各サービスインスタンスを無効状態にしようとします。サービスインスタンスがすでに無効になっていても、機能低下状態になっている場合、割り当てられたリスタータは、無効状態への移行を再試行します。このアクションには、サービスインスタンスの「general」プロパティーグループを変更するためのアクセス権が必要です (smf_security(7) のマニュアルページを参照)。

–s オプションが指定されている場合、svcadm は各サービスインスタンスを無効にしたあと、各サービスインスタンスが無効状態になるまで待ちます。管理者の操作なしではサービスがこの状態に到達できないと判定した場合、svcadm は状態を待たずに戻ります。

–t オプションが指定されている場合、svcadm は各サービスインスタンスを一時的に無効にします。一時的な無効はリブートまでに限り継続します。このアクションには、サービスインスタンスの「restarter_actions」プロパティーグループを変更するためのアクセス権が必要です (smf_security(7) のマニュアルページを参照)。デフォルトでは、disable はリブート後も永続します。

–T オプションが –s オプションとともに指定された場合、svcadm は同期操作が完了するのを timeout 秒間待機します。timeout 秒が経過しても、アクションがまだ継続する可能性がある場合、svcadm は状態を待たずに戻ります。

restart [–s [–T timeout] ] {FMRI | pattern}. . .

オペランドで指定されているサービスインスタンスの再起動を要求します。このアクションには、サービスインスタンスの「restarter_actions」プロパティーグループを変更するためのアクセス権が必要です (smf_security(7) のマニュアルページを参照)。サービスの再起動は、ほとんどのリスタータではサービスの完全「停止」後の「起動」として実装されています。

このサブコマンドは、オンライン (online) 状態または機能低下 (degraded) 状態にあるサービスだけを再起動できます。それらの状態は、smf(7) マニュアルページに定義されています。

–s オプションを指定すると、各サービスインスタンスが、中間状態への最初の遷移までではなく、オンライン、機能低下、または保守のいずれかの状態になるまで、svcadm は戻りません。

–T オプションが –s オプションとともに指定された場合、svcadm は同期操作が完了するのを timeout 秒間待機します。timeout 秒が経過しても、アクションがまだ継続する可能性がある場合、svcadm は状態を待たずに戻ります。

refresh [–s [–T timeout] ] {FMRI | pattern}. . .

オペランドで指定されている各サービスインスタンスについて、サービスの実行中の構成のスナップショットを現在の構成の値で更新するよう、割り当てられているリスタータに要求します。これらの値の一部はすぐに有効になります (たとえば、依存関係の変更など)。その他の値は、次回のサービスの restart まで有効になりません。詳細については、リスタータおよびサービスのドキュメントを参照してください。

サービスが svc.startd(8) によって管理されている場合は、refresh メソッドが存在していればそれが呼び出され、サービスに自身の構成を再読み取りするように要求します。その他のリスタータについては、リスタータのドキュメントを参照してください。

このアクションには、サービスインスタンスの「restarter_actions」プロパティーグループを変更するためのアクセス権が必要です (smf_security(7) のマニュアルページを参照)。

–s オプションを指定すると、各サービスインスタンスがオンライン、保守、または機能低下の各状態になるまで、svcadm が待機します。さらに管理アクションを行わないと、これらの状態のいずれかに遷移できないインスタンスがある場合、svcadm は状態を待たずに戻ります。

–T オプションが –s オプションとともに指定された場合、svcadm は同期操作が完了するのを timeout 秒間待機します。timeout 秒が経過しても、アクションがまだ継続する可能性がある場合、svcadm は状態を待たずに戻ります。

clear [–s [–T timeout] ] {FMRI | pattern}. . .

オペランドで指定されている各サービスインスタンスについて、インスタンスが maintenance 状態の場合は、割り当てられているリスタータにサービスが修復されたことを通知します。インスタンスが degraded 状態の場合は、サービスを online 状態にするよう、割り当てられているリスタータに要求します。インスタンスが degraded 状態で、有効にもなっていない場合は、サービスを disabled 状態にするよう、割り当てられているリスタータに要求します。このアクションでは、サービスインスタンスの「restarter_actions」プロパティーグループを変更するためのアクセス権が必要です。詳細は、smf_security(7) のマニュアルページを参照してください。

–s オプションを指定した場合、オペランドに指定された各サービスインスタンスがオンライン状態になるまで、svcadm は戻りません。さらに管理アクションを行わないと、その状態にならないインスタンスがある場合、svcadm は状態を待たずに戻ります。

–T オプションが –s オプションとともに指定された場合、svcadm は同期操作が完了するのを timeout 秒間待機します。timeout 秒が経過しても、アクションがまだ継続する可能性がある場合、svcadm は状態を待たずに戻ります。

goals [–s [–T timeout]] [–g goal_FMRI] { c | FMRI ... }

オペランドで各 FMRI を goal_FMRI の依存関係として設定します。–g オプションを省略すると、サブコマンドは milestone/goals サービスで動作します。グローバルサービスとして設定されていないサービスで依存関係を設定しようとすると失敗します。goal サービスの概要については、smf(7) のマニュアルページを参照してください。

FMRI の代わりにオプション –c を使用すると、依存関係に対する管理カスタマイズはクリアされます。依存関係は、レイヤー階層に応じて、マニフェストとプロファイルレイヤーでもたらされた関係に戻ります。milestone/goals で –c オプションを使用すると、その依存関係は次に戻ります

svc:/milestone/multi-user-server:default

このコマンドで定義されたすべての依存関係には、グループ化 require_all および restart_on restart が指定されます。詳細は、smf(7) のマニュアルページを参照してください。goals は、milestone/goals の既存の依存関係を上書きします。milestone/goals または任意の goal サービスの依存関係は、svcs -d FMRI コマンドを使用して検索できます。

–s オプションを指定すると、svcadm は、新しい依存関係セットが同期リフレッシュによって有効になるまで待機します。リフレッシュが失敗した場合、svcadm はすぐに戻ります。

–T オプションが –s オプションとともに指定された場合、svcadm は同期操作が完了するのを timeout 秒間待機します。timeout 秒が経過しても、アクションがまだ継続する可能性がある場合、svcadm は状態を待たずに戻ります。

通常、milestone/goals を動的に有効にされたサービスに依存させるのは推奨されません。動的に有効にされたサービスにより、milestone/goals は、別のサービスによって有効にされるまで、ブート中に保守状態になります。永続的に有効にされたサービスにマイルストーン/ゴールを設定するか、または svccfg(8) コマンドを使用して、依存関係タイプを optional_all に手動で変更します。

例外的な操作

次のサブコマンドは、サービス開発、より高いレベルのフレームワークによるサービスの管理、および一時的な管理操作のために使用されます。

delegate [–s [–T timeout] ] restarter_FMRI svc| inst_FMRI [ svc|inst_FMRI ... ]

特定の inst_FMRI のリスタータ割り当てを、restarter_FMRI で指定されたリスタータに変更します。特殊なトークン master は、委任リスタータをマスターリスタータ svc.startd(8) に設定します。特殊なトークン reset は、リスタータのカスタマイズを削除することで、委任リスタータを元のファイル補助リスタータに戻します。再委託するには、再開操作を有効にする必要があります。すべてのリスタータで同じベースアプリケーションモデルがサポートされるわけではないため、可能などの委任でも、機能するサービスインスタンスが生成されるとは限りません。互換性を判定するための操作に関係する特定のリスタータについては、マニュアルページを参照してください。

リスタータが存在しないか、無効になっている場合、サービスインスタンスは委任されず、エラーが返されます。リスタータが存在しても、オフラインまたは保守モードになっている場合、インスタンスは委任されますが、オンライン状態に移行されない可能性があります。警告メッセージが出力されます。

–s オプションを指定すると、svcadm は、各サービスインスタンスを委任してから、各サービスインスタンスがオンライン状態になるまで待機するか、以前にオンラインだった場合、general/restarter プロパティーグループまたはプロパティーが更新されるまで待機します。管理者の介入なしでサービスがこれらの状態に達することができないと判定した場合、svcadm はすぐに戻ります。

–T オプションが –s オプションとともに指定された場合、svcadm は同期操作が完了するのを timeout 秒間待機します。timeout 秒が経過しても、アクションがまだ継続する可能性がある場合、svcadm は状態を待たずに戻ります。

mark [–It] [– s [–T timeout ]] instance_state { FMRI | pattern}. . .

instance_state が「maintenance」の場合、svcadm は、オペランドで指定されている各サービスについて、サービスを maintenance 状態にするよう、割り当てられているリスタータに要求します。各リスタータで行われるアクションの詳細は、svc.startd(8) および inetd(8) を参照してください。

instance_state が「degraded」の場合、svcadm は、オペランドで指定されているサービスのうちオンライン状態のものについて、サービスを degraded 状態にするよう、サービスに割り当てられているリスタータに要求します。

–I オプションが指定されている場合、要求には「即時 (immediate)」としてフラグが設定されます。

–t オプションは保守要求にのみ有効です。このオプションが指定されている場合、要求には「一時 (temporary)」としてフラグが設定され、その効果は次回のリブートまでに限り継続します。

–s オプションを指定した場合、各サービスインスタンスが保守状態または機能低下状態になるまで、svcadm は戻りません。

milestone [–d] [– s [–T timeout ]] milestone_FMRI

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(7) のマニュアルページを参照)。

–d オプションが指定されている場合は、要求されたマイルストーンへの変更がすぐに、前述のとおり実行されます。また、指定されたマイルストーンはデフォルトのブートマイルストーンとなり、リブート後も持続します。デフォルトのマイルストーンは、マスターリスタータ svc:/system/svc/restarter:defaultoptions/milestone プロパティーで定義されます。このプロパティーが存在しない場合、デフォルトは「all」です。このアクションには、svc:/system/svc/restarter:default サービスインスタンスの「options」プロパティーグループを変更するためのアクセス権が必要です (smf_security(7) のマニュアルページを参照)。

–T オプションが –s オプションとともに指定された場合、svcadm は同期操作が完了するのを timeout 秒間待機します。timeout 秒が経過しても、アクションがまだ継続する可能性がある場合、svcadm は状態を待たずに戻ります。

–s オプションを指定した場合、svcadm はシステムのマイルストーンを変更し、指定されたマイルストーンへの遷移が完了するのを待機します。マイルストーンに到達するためにはオンラインまたは無効に遷移する必要があるサービスが、管理者が操作しないと遷移できない場合、svcadm は状態を待たずに戻ります。

オペランド

次のオペランドがサポートされています。

FMRI

1 つまたは複数のインスタンスを指定する FMRI。インスタンス名を指定するか、サービス名の連続する部分を指定することにより、FMRI を省略形にすることもできます。たとえば、次のような FMRI を仮定します。

svc:/network/smtp:sendmail

この場合、次に示す省略形はすべて有効です。

sendmail 
:sendmail 
smtp 
smtp:sendmail 
network/smtp

これに対し、次のものは無効です。

mail
network
network/smt

FMRI がサービスを指定している場合、コマンドはそのサービスのすべてのインスタンスに適用されます。FMRI の省略形は不安定なので、スクリプトやその他の長期に渡って使用するツールには使用しないでください。

pattern

fnmatch(7) で説明されている展開規則に従ってサービスインスタンスの FMRI と照合されるパターン。このパターンが「svc:」で始まっていない場合は、 「svc: /」が先頭に付加されます。

省略形の FMRI またはパターンが複数のサービスに一致する場合は、警告メッセージが表示され、そのオペランドは無視されます。

複数の FMRI またはパターン引数を指定した場合、処理される順序に関する想定は行われません。何らかの依存関係などで、ある FMRI の操作が別の操作に影響する可能性がある場合、順序どおりに実行するには、これらの操作を別のコマンド行に指定してください。

–T オプションが –s オプションとともに指定された場合、svcadm は同期操作が完了するのを timeout 秒間待機します。timeout 秒が経過しても、アクションがまだ継続する可能性がある場合、svcadm は状態を待たずに戻ります。

使用例 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

終了ステータス

次の終了ステータスが返されます。

0

正常終了。

1

致命的なエラーが発生しました。1 つ以上のエラーメッセージが標準エラーに表示されます。

2

無効なコマンド行オプションが指定された。

3

svcadm は、サービスインスタンス自体の問題により、待機中のサービスインスタンスが管理者の操作なしでは目的の状態に到達できないと判定しました。

4

svcadm は、サービスの依存関係の問題により、待機中のサービスインスタンスが管理者の操作なしでは目的の状態に到達できないと判定しました。

5

サービスインスタンスを待機していて、そのインスタンスが目的の状態になる可能性はあったがそうならず、svcadm がタイムアウトしました。

属性

属性についての詳細は、マニュアルページの attributes(7) を参照してください。

属性タイプ
属性値
使用条件
system/core-os
インタフェースの安定性
下記を参照。

対話型出力は「不確実」です。呼び出しおよび非対話型出力は「確実」です。

関連項目

svcprop(1)svcs(1)libscf(3LIB)contract(5)attributes(7)smf(7)smf_security(7)inetd(8)init(8)svc.startd(8)svccfg(8)

svcadm がサービスおよびその依存関係の状態の変化を待機する時間は、それらのメソッドのタイムアウトによって暗黙に制限されます。たとえば、サービスがデフォルトのリスタータを使用している場合、その start メソッドがハングアップすると、タイムアウトの期限が切れたときサービスは保守状態に移行します。すると svcadm は、管理者の操作なしではこのサービスがオンライン状態に到達できないと判定します。

ファイルに (直接または間接的に) 依存しているサービスを同期的に有効にしようとすると、そのファイルの入っているディレクトリを検索するために必要な特権を呼び出し元が持っていない場合は、依存関係が満たされていないことを示す終了ステータスで失敗する場合があります。この制限事項は、Solaris の将来のリリースでは取り除かれる可能性があります。