Solaris10 でのサービスの有効化/無効化 [SMF]
Solaris10ではサービスの起動メカニズムが一新されている。
いままで通りのRCスクリプトからの起動もサポートされており、同様の方法で新しくサービスを追加することも可能であるが、既に多くのサービスが新しい
サービス管理体系であるSMF (Service Management Facility)に移行されている。
ここでは SMF に移行されたサービスの確認の仕方と最低限の制御方法を紹介する。
【検証環境】
#
cat /etc/release
Solaris 10 3/05 s10_74L2a SPARC
Copyright
2005 Sun Microsystems, Inc. All Rights Reserved.
Use is subject to license terms.
Assembled 22 January 2005
【サービスの確認・制御】
■ サービスの状態確認
まずは以下のコマンドでサービスの稼働状態の確認できる。
FMRI(Fault Managed Resource Identifier)がサービスの識別子で、この箇所が lrc:
になっているものは旧RCスクリプト体系のサービスで svc:
になっているものが新しくSMF体系に移行されたサービスだ。ちなみにSMF管理されているものはSTATEカラムでサービスの状態が確認できる。
#
svcs -a
STATE
STIME FMRI
legacy_run 2月_23
lrc:/etc/rc2_d/S10lu
legacy_run 2月_23
lrc:/etc/rc2_d/S20sysetup
legacy_run 2月_23
lrc:/etc/rc2_d/S40llc2
legacy_run 2月_23
lrc:/etc/rc2_d/S42ncakmod
legacy_run 2月_23
lrc:/etc/rc2_d/S47pppd
legacy_run 2月_23
lrc:/etc/rc2_d/S70uucp
legacy_run 2月_23
lrc:/etc/rc2_d/S72autoinstall
legacy_run 2月_23
lrc:/etc/rc2_d/S73cachefs_daemon
legacy_run 2月_23
lrc:/etc/rc2_d/S81dodatadm_udaplt
legacy_run 2月_23
lrc:/etc/rc2_d/S89PRESERVE
legacy_run 2月_23
lrc:/etc/rc2_d/S89bdconfig
legacy_run 2月_23
lrc:/etc/rc2_d/S90loc_ja_cssd
legacy_run 2月_23
lrc:/etc/rc2_d/S90wbem
legacy_run 2月_23
lrc:/etc/rc2_d/S90webconsole
legacy_run 2月_23
lrc:/etc/rc2_d/S94Wnn6
legacy_run 2月_23
lrc:/etc/rc2_d/S94atsv
legacy_run 2月_23
lrc:/etc/rc2_d/S94ncalogd
legacy_run 2月_23
lrc:/etc/rc2_d/S95IIim
legacy_run 2月_23
lrc:/etc/rc2_d/S98deallocate
legacy_run 2月_23
lrc:/etc/rc2_d/S99audit
legacy_run 2月_23
lrc:/etc/rc2_d/S99dtlogin
legacy_run 2月_23
lrc:/etc/rc3_d/S16boot_server
legacy_run 2月_23
lrc:/etc/rc3_d/S50apache
legacy_run 2月_23
lrc:/etc/rc3_d/S52imq
legacy_run 2月_23
lrc:/etc/rc3_d/S75seaport
legacy_run 2月_23
lrc:/etc/rc3_d/S76snmpdx
legacy_run 2月_23
lrc:/etc/rc3_d/S77dmi
legacy_run 2月_23
lrc:/etc/rc3_d/S80mipagent
legacy_run 2月_23
lrc:/etc/rc3_d/S81volmgt
legacy_run 2月_23
lrc:/etc/rc3_d/S82initsma
legacy_run 2月_23
lrc:/etc/rc3_d/S84appserv
legacy_run 2月_23
lrc:/etc/rc3_d/S90samba
disabled 2月_23
svc:/platform/sun4u/mpxio-upgrade:default
disabled 2月_23
svc:/network/rpc/nisplus:default
disabled 2月_23
svc:/network/nis/server:default
disabled 2月_23
svc:/network/rpc/keyserv:default
disabled 2月_23
svc:/network/nis/client:default
disabled 2月_23
svc:/network/dns/client:default
disabled 2月_23
svc:/network/ldap/client:default
disabled 2月_23
svc:/network/nfs/cbd:default
disabled 2月_23
svc:/network/inetd-upgrade:default
disabled 2月_23
svc:/application/print/server:default
disabled 2月_23
svc:/network/ntp:default
disabled 2月_23
svc:/system/rcap:default
disabled 2月_23
svc:/site/banner-smf:default
disabled 2月_23
svc:/application/management/webmin:default
disabled 2月_23
svc:/application/gdm2-login:default
disabled 2月_23
svc:/network/dns/server:default
disabled 2月_23
svc:/network/security/kadmin:default
disabled 2月_23
svc:/network/security/krb5kdc:default
disabled 2月_23
svc:/network/nis/passwd:default
disabled 2月_23
svc:/network/nis/update:default
disabled 2月_23
svc:/network/nis/xfr:default
disabled 2月_23
svc:/network/http:apache2
disabled 2月_23
svc:/network/dhcp-server:default
disabled 2月_23
svc:/network/ipfilter:default
disabled 2月_23
svc:/system/consadm:default
disabled 2月_23
svc:/network/slp:default
disabled 2月_23
svc:/system/sar:default
disabled 2月_23
svc:/network/rpc/ocfserv:default
disabled 2月_23
svc:/network/rpc/mdcomm:default
disabled 2月_23
svc:/network/rpc/metamed:default
disabled 2月_23
svc:/network/rpc/metamh:default
disabled 2月_23
svc:/network/rpc/rex:default
disabled 2月_23
svc:/network/rpc/spray:default
disabled 2月_23
svc:/network/rpc/wall:default
disabled 2月_23
svc:/network/tname:default
disabled 2月_23
svc:/network/security/krb5_prop:default
disabled 2月_23
svc:/network/apocd/udp:default
disabled 2月_23
svc:/network/uucp:default
disabled 2月_23
svc:/network/chargen:dgram
disabled 2月_23
svc:/network/chargen:stream
disabled 2月_23
svc:/network/daytime:dgram
disabled 2月_23
svc:/network/daytime:stream
disabled 2月_23
svc:/network/discard:dgram
disabled 2月_23
svc:/network/discard:stream
disabled 2月_23
svc:/network/echo:dgram
disabled 2月_23
svc:/network/echo:stream
disabled 2月_23
svc:/network/time:dgram
disabled 2月_23
svc:/network/time:stream
disabled 2月_23
svc:/network/comsat:default
disabled 2月_23
svc:/network/login:eklogin
disabled 2月_23
svc:/network/login:klogin
disabled 2月_23
svc:/network/rexec:default
disabled 2月_23
svc:/network/shell:kshell
disabled 2月_23
svc:/network/talk:default
online
2月_23 svc:/system/svc/restarter:default
online
2月_23 svc:/milestone/name-services:default
online
2月_23 svc:/network/pfil:default
online
2月_23 svc:/network/loopback:default
online
2月_23 svc:/network/physical:default
online
2月_23 svc:/milestone/network:default
online
2月_23 svc:/system/identity:node
online
2月_23 svc:/system/metainit:default
online
2月_23 svc:/system/filesystem/root:default
online
2月_23 svc:/system/filesystem/usr:default
online
2月_23 svc:/system/keymap:default
online
2月_23 svc:/system/device/local:default
online
2月_23 svc:/milestone/devices:default
online
2月_23 svc:/system/filesystem/minimal:default
online
2月_23 svc:/system/identity:domain
online
2月_23 svc:/application/print/cleanup:default
online
2月_23 svc:/system/picl:default
online
2月_23 svc:/system/power:default
online
2月_23 svc:/system/sysevent:default
online
2月_23 svc:/system/rmtmpfiles:default
online
2月_23 svc:/system/device/fc-fabric:default
online
2月_23 svc:/system/coreadm:default
online
2月_23 svc:/system/cryptosvc:default
online
2月_23 svc:/system/manifest-import:default
online
2月_23 svc:/milestone/single-user:default
online
2月_23 svc:/network/initial:default
online
2月_23 svc:/network/service:default
online
2月_23 svc:/system/filesystem/local:default
online
2月_23 svc:/system/cron:default
online
2月_23 svc:/system/sysidtool:net
online
2月_23 svc:/network/rpc/bind:default
online
2月_23 svc:/network/rpc/bootparams:default
online
2月_23 svc:/system/sysidtool:system
online
2月_23 svc:/milestone/sysconfig:default
online
2月_23 svc:/system/sac:default
online
2月_23 svc:/network/inetd:default
online
2月_23 svc:/system/utmp:default
online
2月_23 svc:/system/console-login:default
online
2月_23 svc:/application/font/fc-cache:default
online
2月_23 svc:/network/rpc/gss:default
online
2月_23 svc:/network/rpc/meta:default
online
2月_23 svc:/application/font/stfsloader:default
online
2月_23 svc:/application/x11/xfs:default
online
2月_23 svc:/network/rpc/smserver:default
online
2月_23 svc:/network/rpc/rstat:default
online
2月_23 svc:/network/rpc/rusers:default
online
2月_23 svc:/network/security/ktkt_warn:default
online
2月_23 svc:/network/telnet:default
online
2月_23 svc:/network/ftp:default
online
2月_23 svc:/network/finger:default
online
2月_23 svc:/network/login:rlogin
online
2月_23 svc:/network/shell:default
online
2月_23 svc:/network/rpc-100235_1/rpc_ticotsord:default
online
2月_23 svc:/network/rpc-100083_1/rpc_tcp:default
online
2月_23 svc:/network/rpc-100068_2-5/rpc_udp:default
online
2月_23 svc:/network/tftp/udp6:default
online
2月_23 svc:/network/nfs/client:default
online
2月_23 svc:/system/mdmonitor:default
online
2月_23 svc:/network/nfs/status:default
online
2月_23 svc:/network/nfs/nlockmgr:default
online
2月_23 svc:/network/nfs/server:default
online
2月_23 svc:/network/nfs/mapid:default
online
2月_23 svc:/network/nfs/rquota:default
online
2月_23 svc:/system/filesystem/autofs:default
online
2月_23 svc:/network/ssh:default
online
2月_23 svc:/system/system-log:default
online
2月_23 svc:/network/rarp:default
online
2月_23 svc:/system/dumpadm:default
online
2月_23 svc:/network/smtp:sendmail
online
2月_23 svc:/system/fmd:default
online
2月_23 svc:/milestone/multi-user:default
online
2月_23 svc:/milestone/multi-user-server:default
online
2月_23 svc:/system/zones:default
online
3月_16 svc:/system/name-service-cache:default
offline 2月_23
svc:/application/print/ipp-listener:default
offline 2月_23
svc:/application/print/rfc1179:default
■ サービスの制御
サービスの制御は svcadm コマンドか inetadm コマンドで行う。
それぞれの役割は
svcadm : すべてのサービスの制御
inetadm : inetサービスの制御、確認、プロパティ変更
となっている。
例えば、sendmailサービスを確認し、サービスを停止してみよう。
#
svcs -a | grep sendmail
online 16:06:41
svc:/network/smtp:sendmail
#
svcadm disable
svc:/network/smtp:sendmail
#
svcs -a | grep sendmail
disabled 16:07:12
svc:/network/smtp:sendmail
この操作で、稼働しているsendmailデーモンは停止し、さらに再起動後もsendmailサービスは無効になる。一時的にサービスを停止/稼働させ
たい場合は以下のように -t オプションを使用する。
#
svcadm enable -t
svc:/network/smtp:sendmail
このコマンドでサービスは一時的にオンラインになるが、再起動後は稼働しない。
#
svcs -a | grep sendmail
online 16:10:10
svc:/network/smtp:sendmail
#
svcs -l svc:/network/smtp:sendmail
fmri
svc:/network/smtp:sendmail
name sendmail SMTP mail
transfer agent
有効
true (temporary)
状態 online
next_state none
state_time 2005年03月17日 (木) 16時10分10秒
logfile
/var/svc/log/network-smtp:sendmail.log
リスタータ svc:/system/svc/restarter:default
contract_id 275
dependency require_all/refresh
file://localhost/etc/mail/sendmail.cf (online)
dependency require_all/refresh
file://localhost/etc/nsswitch.conf (online)
dependency optional_all/none svc:/system/filesystem/autofs
(online)
dependency require_all/none svc:/system/filesystem/local
(online)
dependency require_all/none svc:/network/service (online)
dependency require_all/refresh svc:/milestone/name-services
(online)
dependency optional_all/refresh svc:/system/identity:domain
(online)
dependency optional_all/none svc:/system/system-log (online)
ちなみに svcadm コマンドで指定するFMRIはある程度省略して書くことができるので便利だ。
たとえば ssh サービスを操作するのであれば正式名であるsvc:/network/ssh:defaultを使わなくても
#
svcadm disable ssh
で構わない。sendmailに関しても以下の2つのように省略して指定可能だ。
#
svcadm disable sendmail
#
svcadm disable smtp
つまり、サービスを一意に識別できればいいので、NFSサーバなどは以下のような表記でよいことになる。(serverだけでは他にもたくさんあり識別で
きない)
#
svcadm enable nfs/server
またinetサービスに関しても svcadm コマンドで以下のように制御可能だが inetadm
コマンドでも制御することができる。以下の2つの例は全く同じ結果になる。
svcadm の場合は enable/disable で有効/無効を設定するが、inetadm は -e/-d を使用する。
#
svcadm disable telnet
#
inetadm -d telnet
ちなみに inetadm コマンドを引数なしで実行すると
inetdが管理しているサービスの状態がわかる。1カラム目が構成状態(起動時に有効か?)、2カラム目が現在の状態になる。
# inetadm
ENABLED
STATE FMRI
enabled
online
svc:/application/font/stfsloader:default
enabled
online
svc:/application/x11/xfs:default
enabled offline
svc:/application/print/rfc1179:default
enabled
online
svc:/network/rpc/gss:default
enabled
online
svc:/network/rpc/smserver:default
disabled disabled
svc:/network/rpc/ocfserv:default
disabled disabled
svc:/network/rpc/mdcomm:default
enabled
online
svc:/network/rpc/meta:default
disabled disabled
svc:/network/rpc/metamed:default
disabled disabled
svc:/network/rpc/metamh:default
disabled disabled
svc:/network/rpc/rex:default
enabled
online
svc:/network/rpc/rstat:default
enabled
online
svc:/network/rpc/rusers:default
disabled disabled
svc:/network/rpc/spray:default
disabled disabled
svc:/network/rpc/wall:default
disabled disabled
svc:/network/tname:default
enabled
online
svc:/network/security/ktkt_warn:default
disabled disabled
svc:/network/security/krb5_prop:default
disabled
disabled svc:/network/telnet:default
enabled
online
svc:/network/nfs/rquota:default
disabled disabled
svc:/network/apocd/udp:default
disabled disabled
svc:/network/uucp:default
disabled disabled
svc:/network/chargen:dgram
disabled disabled
svc:/network/chargen:stream
disabled disabled
svc:/network/daytime:dgram
disabled disabled
svc:/network/daytime:stream
disabled disabled
svc:/network/discard:dgram
disabled disabled
svc:/network/discard:stream
disabled disabled
svc:/network/echo:dgram
disabled disabled
svc:/network/echo:stream
disabled disabled
svc:/network/time:dgram
disabled disabled
svc:/network/time:stream
enabled
online
svc:/network/ftp:default
disabled disabled
svc:/network/comsat:default
enabled
online
svc:/network/finger:default
disabled disabled
svc:/network/login:eklogin
disabled disabled
svc:/network/login:klogin
enabled
online
svc:/network/login:rlogin
disabled disabled
svc:/network/rexec:default
enabled
online
svc:/network/shell:default
disabled disabled
svc:/network/shell:kshell
disabled disabled
svc:/network/talk:default
enabled
online
svc:/network/rpc-100235_1/rpc_ticotsord:default
enabled
online
svc:/network/rpc-100083_1/rpc_tcp:default
enabled
online
svc:/network/rpc-100068_2-5/rpc_udp:default
enabled
online
svc:/network/tftp/udp6:default
■ 構成ファイル
上記のようにコマンドでサービスの設定ができ、それが常時適用されるので、今までようなRCスクリプトの操作は不要だが、サービスの構成ファイルの所在が
気になることは確か。
以下のように4つのタイプに分かれている。ここでは簡単な紹介にとどめるが、通常の管理では差し支えないだろう。
○ /etc/svc/repository.db
svcadmやinetadmコマンドで変更された構成が反映されるリポジトリDBファイル。
情報はすべてコマンド使って見るため、直接開いて確認することはできない。
起動時はこのファイルが参照されてサービスが開始される。
○ /var/svc/profile/*
サービスのデフォルト状態などを定義している設定ふぁいる。
特に変更の必要はない。
○ /var/svc/manifest/カテゴリ/*
サービスのプロパティや依存関係などを定義した構成ファイル。
カテゴリ毎に分けられて管理されている。
新規にサービスを追加するときには作成する必要がある。
○ /lib/svc/method/*
SMF管理されているサービスの制御スクリプト。旧RCスクリプトに該当する。
デーモンの起動オプションの変更や確認で使用する。
上記manifestファイル内で指定されている。
Solaris系技術トレーニング一覧