Solaris 10 のサービス管理方法
最終更新日:2006年04月19日
SMF(Service Management Facility) によるサービス管理
管理コマンド
SMFの管理コマンドを以下に示す
コマンド |
役割 |
svcs |
サービスの状態を表示する |
svcadm |
サービスの有効化/無効化などを行う |
svccfg |
設定情報を読み書きする |
svcprop |
サービスの設定情報(プロパティ)を表示する |
svcsコマンドの主なオプション
svcsコマンドの主なオプションを以下に示す
コマンドオプション |
内容 |
svcs -a |
全サービスのリストを表示 |
svcs [FMRI] |
状態が disabled 以外のサービスを表示。FMRIが指定されていればそのサービスを表示 |
svcs -p [FMRI] |
プロセス情報を含めて表示。FMRIが指定されていればそのサービスを表示 |
svcs -v [FMRI] |
verbose モード。STATE, NSTATE, STIME, CTID, FMRI を表示 |
svcs -d FMRI |
自身が依存しているサービスを表示 |
svcs -D FMRI |
自身に依存しているサービスを表示 |
svcs -l FMRI |
詳細な情報を表示 |
svcs -x [FMRI] |
各サービスの説明 |
また、"-\?"オプションで実行すると以下のヘルプが表示される
$ svcs -\?
使用法: svcs [-aHpv] [-o col[,col ... ]] [-R restarter] [-sS col] [<サービス> ...]
svcs -d | -D [-Hpv] [-o col[,col ... ]] [-sS col] [<サービス> ...]
svcs -l <サービス> ...
svcs -x [-v] [<サービス> ...]
svcs -?
-a 使用可能になっているサービスインスタンスだけではなく、すべてのサービスインスタンスを表示します
-d 指定されたサービスの依存関係を表示します
-D 指定されたサービスの依存を表示します
-H 出力からヘッダー行を省略します
-l 指定されたサービスの詳細情報を表示します
-o 出力のうち指定された列のみを表示します
-p 各サービスに関連付けられたプロセス ID と名前を表示します
-R 指定されたリスタータを持つサービスのみを表示します
-s 指定された列の昇順に出力を並べ替えます
-S 指定された列の降順に出力を並べ替えます
-v 出力のタイプに応じて詳細情報を表示します
-x 保守を必要とする可能性のあるサービスの状態を説明するか、
または指定されたサービスの状態を説明します
サービスは、FMRI、略記名、または fnmatch(5)
パターンを使用して指定できます。以下の svc:/network/smtp:sendmail の例を参照してください
svcs [opts] svc:/network/smtp:sendmail
svcs [opts] network/smtp:sendmail
svcs [opts] network/*mail
svcs [opts] network/smtp
svcs [opts] smtp:sendmail
svcs [opts] smtp
svcs [opts] sendmail
出力またはソートのカラムはこれらの名前を使って指定できます:
CTID サービスの契約 ID (contract(4) を参照)
DESC 人間が読むことのできるサービスの説明
FMRI サービスの障害管理リソース ID
INST FMRI で指定されているサービスインスタンスの部分
N 次の状態の略記名 (遷移状態の場合)
NSTA 次の状態の略記名 (遷移状態の場合)
NSTATE 次の状態の名前 (遷移状態の場合)
S 現在の状態の略記名
SCOPE サービスに関連付けられたスコープの名前
SN 現在の状態と次の状態の略記名
SVC FMRI で表現されているサービス名の部分
STA 現在の状態の略記名
STATE 現在の状態の名前
STIME 状態の最終変更時刻
svcadmコマンドの主なオプション
オプション無しでsvcadmコマンドを実行すると以下のヘルプが表示される
$ /usr/sbin/svcadm
使用法: svcadm [-v] [cmd [args ... ]]
svcadm enable [-rst] <サービス> ... - サービスを使用可能にしてオンラインにします
svcadm disable [-st] <サービス> ... - サービスを使用不可にしてオフラインにします
svcadm restart <サービス> ... - 指定されたサービスを再起動します
svcadm refresh <サービス> ... - サービスの設定を再度読み取ります
svcadm mark [-It] <状態> <サービス> ... - 保守状態を設定します
svcadm clear <サービス> ... - 保守状態を消去します
svcadm milestone [-d] <マイルストン> - 特定のサービスマイルストンに進みます
サービスは、FMRI、略記名、または fnmatch(5)
パターンを使用して指定できます。以下の svc:/network/smtp:sendmail の例を参照してください
svcadm <cmd> svc:/network/smtp:sendmail
svcadm <cmd> network/smtp:sendmail
svcadm <cmd> network/*mail
svcadm <cmd> network/smtp
svcadm <cmd> smtp:sendmail
svcadm <cmd> smtp
svcadm <cmd> sendmail
svccfgコマンドの主なオプション
svccfgコマンドの主なオプションを以下に示す
(svccfgコマンドをオプション無しで起動すると対話モードになる)
コマンドオプション |
内容 |
svccfg export FMRI |
サービスの設定情報をXMLで標準出力に出力 |
svccfg import manifestファイル名 |
サービスの設定情報(manifestファイル)の登録 |
svccfg delete FMRI |
サービスの削除 |
svcpropコマンドの主なオプション
オプション無しでsvcpropコマンドを実行すると以下のヘルプが表示される
$ /usr/bin/svcprop
使用法: svcprop [-fqtv] [-C | -c | -s snapshot] [-p [name/]name]...
{FMRI | パターン}...
svcprop -w [-fqtv] [-p [name/]name] {FMRI | パターン}
サービスの確認方法
全サービスのリスト表示
書式
svcs -a
出力例
$ svcs -a
STATE STIME FMRI
legacy_run 13:33:18 lrc:/etc/rc2_d/S10lu
legacy_run 13:33:18 lrc:/etc/rc2_d/S20sysetup
legacy_run 13:33:18 lrc:/etc/rc2_d/S40llc2
.
.
.
disabled 13:33:08 svc:/network/rpc/rex:default
disabled 13:33:09 svc:/network/rpc/spray:default
disabled 13:33:09 svc:/network/rpc/wall:default
.
.
.
online 13:33:08 svc:/network/ntp:default
online 13:33:09 svc:/application/font/fc-cache:default
online 13:33:11 svc:/network/rpc/gss:default
.
.
.
offline 13:33:10 svc:/application/print/rfc1179:default
offline 13:33:49 svc:/application/print/ipp-listener:default
指定したサービスのリスト表示
書式
svcs FMRI
出力例
$ svcs default
STATE STIME FMRI
disabled 13:33:08 svc:/network/rpc/rex:default
disabled 13:33:09 svc:/network/rpc/spray:default
disabled 13:33:09 svc:/network/rpc/wall:default
.
.
.
online 13:33:08 svc:/network/ntp:default
online 13:33:09 svc:/application/font/fc-cache:default
online 13:33:11 svc:/network/rpc/gss:default
.
.
.
offline 13:33:10 svc:/application/print/rfc1179:default
offline 13:33:49 svc:/application/print/ipp-listener:default
プロセス情報も含めて表示
書式
svcs -p [FMRI]
出力例
$ svcs -p
STATE STIME FMRI
.
.
.
online 13:33:15 svc:/system/dumpadm:default
online 13:33:16 svc:/system/fmd:default
13:33:16 318 fmd
online 13:33:16 svc:/network/ssh:default
13:33:16 324 sshd
online 13:33:17 svc:/network/smtp:postfix
13:33:17 357 master
13:33:18 367 qmgr
16:53:20 1121 pickup
online 13:33:20 svc:/milestone/multi-user:default
.
.
.
依存しているサービスの表示
書式
svcs -d FMRI
出力例
$ svcs -d name-services
STATE STIME FMRI
disabled 13:33:44 svc:/network/ldap/client:default
disabled 13:33:44 svc:/network/rpc/nisplus:default
disabled 13:33:44 svc:/network/nis/client:default
online 13:33:56 svc:/network/dns/client:default
依存されているサービスの表示
書式
svcs -D FMRI
出力例
$ svcs -D name-services
STATE STIME FMRI
disabled 13:33:45 svc:/network/nfs/cbd:default
disabled 13:33:45 svc:/network/nfs/mapid:default
disabled 13:33:46 svc:/network/rpc/bootparams:default
online 13:33:13 svc:/network/nfs/client:default
online 13:33:14 svc:/system/filesystem/autofs:default
online 13:33:14 svc:/system/system-log:default
online 13:33:17 svc:/network/smtp:postfix
online 13:33:20 svc:/milestone/multi-user:default
online 13:33:57 svc:/system/cron:default
online 13:33:59 svc:/network/inetd:default
サービスの詳細情報表示
書式
svcs -l FMRI
出力例
$ svcs -l cron
fmri svc:/system/cron:default
name clock daemon (cron)
有効 true
状態 online
next_state none
state_time 2005年07月25日 (月) 13時33分57秒
logfile /var/svc/log/system-cron:default.log
リスタータ svc:/system/svc/restarter:default
contract_id 34
dependency require_all/none svc:/system/filesystem/local (online)
dependency require_all/none svc:/milestone/name-services (online)
サービスの説明表示
書式
svcs -x FMRI
出力例
$ svcs -x cron
svc:/system/cron:default (clock daemon (cron))
状態: 2005年07月25日 (月) 13時33分57秒 以降onlineです
参照: cron(1M)
参照: crontab(1)
参照: /var/svc/log/system-cron:default.log
影響: ありません。
新規サービスの登録方法
postfixサービスを新規登録する手順を例に説明する。
manifestファイル作成
/var/svc/manifest/network/smtp-sendmail.xml を参考に、Postfix用manifestファイル smtp-postfix.xml を作成し、/var/svc/manifest/network/ に置く。
svccfgコマンドを使用して、
# svccfg export smtp > smtp-postfix.xml
でもsendmail用のmanifestファイルを取得できるが、コメント行が出力されないので、XMLファイルを直接参照した。
※ manifestファイルは、サービスのプロパティや依存関係などを定義したXMLファイル。
methodファイル作成
/lib/svc/method/smtp-sendmail を参考に、Postfix用methodファイル smtp-postfix を作成し、/lib/svc/method/ に置く。
※ methodファイルは、SMFで管理されているサービスの制御スクリプト。旧rcスクリプトに該当する。
rcスクリプト作成(必要に応じて)
/etc/init.d/sendmail を参考に、Postfix用rcスクリプト postfix を作成し、/etc/init.d/ に置く。
サービスの登録
svccfgコマンドでサービスをリポジトリ(管理データベース)に登録する
# svccfg import /var/svc/manifest/network/smtp-postfix.xml
サービスの起動/停止方法
上項で新規登録したpostfixサービスを例に説明する。
起動(ブート時に自動起動)
# svcadm enable postfix
停止(ブート時の自動起動停止)
# svcadm disable postfix
一時的に起動(ブート時の設定に影響しない)
# svcadm enable -t postfix
または(rcスクリプトが用意されている場合)
# /etc/init.d/postfix start
一時的に停止(ブート時の設定に影響しない)
# svcadm disable -t postfix
または(rcスクリプトが用意されている場合)
# /etc/init.d/postfix stop
設定ファイルの再読み込み
# svcadm refresh postfix
または(rcスクリプトが用意されている場合)
# /etc/init.d/postfix restart
状態の確認
# svcs -l postfix
サービスの削除方法
サービスの削除
postfixサービスをリポジトリ(管理データベース)から削除
# svccfg delete -f postfix
上記でサービスのリポジトリの登録は削除されるが、manifestファイルやmethodファイルは削除されないので、必要に応じて手動で削除する。
設定(プロパティ)の確認および変更方法
設定の確認方法
postfixサービスの全プロパティを表示
$ svcprop postfix
特定のプロパティグループのみ表示する場合は"-p"オプションを付ける。
generalプロパティグループを表示する場合の例
$ svcprop -p general postfix
設定の編集方法
新しいmanifestファイル(XMLファイル)をimportしても良いが、svccfgコマンドのeditpropサブコマンドで編集できる(起動するエディタはEDITOR環境変数に依存)。
変更する場合は、変更する行の行頭のコメント"#"を削除し、値を変更して保存する
# svccfg
svc:> select postfix
svc:/network/smtp:postfix> editprop
==================================================
select svc:/network/smtp:postfix
# Property group "main-file"
# delprop main-file
# addpg main-file dependency
# setprop main-file/entities = fmri: (file://localhost/etc/postfix/main.cf)
# setprop main-file/grouping = astring: (require_all)
.
.
.
==================================================
svc:/network/smtp:postfix> quit
設定のロールバック方法
SMFで管理されているサービスの設定情報は履歴管理されており、revertサブコマンドを用いてロールバックする事が可能。
以下はpostfixサービスを初期状態に戻す場合の例
# svccfg
svc:> select postfix
svc:/network/smtp:postfix> listsnap
initial
last-import
running
start
svc:/network/smtp:postfix> revert initial
svc:/network/smtp:postfix> quit
Copyright (C) 2005-2006 SY. All rights reserved.