Solaris 資料一覧
2008/9/18更新
対応バージョン: 10
Solaris10ではサービス管理の機構としてSMF(Service Management Facility)が採用されている。
個々のサービスの起動/停止スクリプトは従来の/etc/rc*.d配下ではなく/lib/svc/method配下に置かれ、svc.startd(マスターリスタータデーモン)によって制御される。
サービスの型や依存関係などを記したXML形式のマニフェストは/var/svc/manifest配下のグループ別ディレクトリに置かれ、svc.configd(リポジトリデーモン)によって参照/変更される。
ログは/var/svc/log配下にサービス毎に出力される。
管理コマンド
SMFの管理コマンドにはサービス全体の管理を行うsvcsと個々のサービスの制御を行うsvcadmがある。以下、それぞれ説明する。
svcs
サービスの一覧表示
# svcs -a STATE STIME FMRI legacy_run 8月_07 lrc:/etc/rcS_d/S50sk98sol legacy_run 8月_07 lrc:/etc/rc2_d/S10lu : disabled 8月_07 svc:/system/metainit:default disabled 8月_07 svc:/network/iscsi_initiator:default : online 8月_07 svc:/system/svc/restarter:default online 8月_07 svc:/network/pfil:default :
実行されていないサービスの一覧
# svcs -x svc:/application/print/server:default (LP print server) State: disabled since Fri Aug 8 00:34:11 2008 Reason: Disabled by an administrator. See: http://sun.com/msg/SMF-8000-05 See: lpsched(1M) Impact: 2 dependent services are not running. (Use -v for list.)
他のサービスに依存するサービスの一覧
# svcs -l <サービス>
例) nfs.serverの依存関係
# svcs -l network/nfs/server fmri svc:/network/nfs/server:default name NFS server 有効 true (temporary) 状態 online next_state none state_time 2008年11月14日 21時31分33秒 logfile /var/svc/log/network-nfs-server:default.log リスタータ svc:/system/svc/restarter:default contract_id 92 dependency require_any/error svc:/milestone/network (online) dependency require_all/error svc:/network/nfs/nlockmgr (online) dependency optional_all/error svc:/network/nfs/mapid (online) dependency require_all/restart svc:/network/rpc/bind (online) dependency optional_all/none svc:/network/rpc/keyserv (disabled) dependency optional_all/none svc:/network/rpc/gss (online) dependency require_all/error svc:/system/filesystem/local (online)
ランレベルに依存するサービスの一覧
# svcs -D <サービス>
例) sshdの依存関係
# svcs -D network/ssh:default STATE STIME FMRI online 8月_07 svc:/milestone/multi-user-server:default
上記の例では当該サービスはマルチユーザになっていなければならないことが分かる。
svcadm
サービス起動
# svcadm enable [-rst] <サービス>
オプションの意味は以下のとおり。
・オプションなし(デフォルト)
OSリブート後もこの設定を有効にする。
・-r
指定したサービスに依存するサービスを再帰的に有効にする。
・-s
指定したサービスを有効にし、状態がonlineかdegradedになるまで待つ。
・-t
指定したサービスを一時的に有効にするが、OSリブートにて元の設定に戻る。
サービス停止
# svcadm disable [-st] <サービス>
例)
# svcs network/smtp:sendmail STATE STIME FMRI online 17:09:19 svc:/network/smtp:sendmail # svcadm disable -t network/smtp:sendmail # svcs network/smtp:sendmail STATE STIME FMRI disabled 17:09:19 svc:/network/smtp:sendmail
サービス再起動
# svcadm restart <サービス>
サービス状態更新
# svcadm refresh <サービス>
サービス状態変更
# svcadm mark [-It] <状態> <サービス>
-Iオプションは即時(immediate)指定である。
<状態>は以下のどちらかを指定する。・maintenance
サービスを停止し、メンテナンスモードにする。
・degraded
サービスを信頼性低下モードにする。
例)
# svcadm mark -It maintenance network/smtp:sendmail # svcs network/smtp:sendmail STATE STIME FMRI maintenance 17:34:27 svc:/network/smtp:sendmail
サービス状態クリア
# svcadm clear <サービス>
maintenance状態のサービスに対しては、サービスが修復されたことをリスタータデーモンに通知する。
degraded状態のサービスに対しては、サービスをonlineにするようリスタータデーモンに通知する。
サービスが上記以外の状態の場合、このコマンドは無視される。