トップページ » Solaris10 SMF (Service Management Facility) » Solaris10 でのサービスの有効化/無効化 [SMF]
カテゴリー
My Yahoo!に追加
Sun社提供情報
Solarisパッケージダウンロード
Sunマシンは買うには
blogs.sun.com
お勧めサイト
プライベートリンク

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ファイル内で指定されている。
  

Solaris10 SMF (Service Management Facility)のその他のリンク

Solaris系技術トレーニング一覧

Solaris10システム管理基本コース
Solaris10ネットワーク・インターネットサーバー管理コース
セキュリティ・パフォーマンス管理・トラブルシューティング等
Sun Cluster、ボリューム管理ソフトウェア
仮想化技術全般
シンクライアント、SunRay、デスクトップソフトウェア
アイデンティティマネージメントサービス
アプリケーションサーバーとWebポータル
サーバー(ハードウェア)メンテナンス
Sun Java CAPS
MySQL