Solaris 10におけるサービスの確認および管理方法UNIX処方箋

現場ですぐに役立つ知識を欲するあなたに贈る珠玉のTips集。今回は、Solaris 10から導入されたサービスを管理するシステムであるSMF(Service Management Facility)について解説します。

» 2009年02月03日 07時00分 公開
[ITmedia]

これまでSolaris 8で社内システムを運用していたのですが、今回新たにSolaris 10のマシンを導入しました。以前と同様に不要なサービスを停止しようとしたのですがうまく停止させられません。Solaris 10でサービスを停止させる方法を教えてもらえますか?


Solaris 10では、SMF(Service Management Facility)関連コマンドで現在のサービス状態を確認し、起動・停止を行えます。SMFとはSolaris 10から導入されたサービスを管理するシステムです。SMFの導入によって、従来のように複数のrcスクリプト(起動スクリプト)を1つずつ読み込んでサービスを起動させるのではなく、複数のサービスを同時に起動できるようになり、システムの起動時間が短縮されています。

svcsコマンド

 現在のサービスの状態を確認するには、svcsコマンドを実行します。


# svcs -a ←「-a」オプションですべてのサービスを表示する
STATE STIME FMRI
legacy_run 9:29:52 lrc:/etc/rcS_d/S29wrsmcfg
legacy_run 9:30:26 lrc:/etc/rc2_d/S10lu
legacy_run 9:30:26 lrc:/etc/rc2_d/S20sysetup
...
disabled 9:29:15 svc:/platform/sun4u/mpxio-upgrade:default
disabled 9:29:17 svc:/network/rpc/keyserv:default
disabled 9:29:17 svc:/network/rpc/nisplus:default
...
online 9:29:40 svc:/system/filesystem/usr:default
online 9:29:40 svc:/system/keymap:default
online 9:29:41 svc:/system/device/local:default
...
offline 9:29:38 svc:/application/print/ipp-listener:default
offline 9:30:13 svc:/application/print/rfc1179:default

 STATE項目の表示内容の意味は表1のとおりです。STIMEはサービスが変更された最終の時刻を、FMRIはサービスを特定するための識別子を表しています。識別子としてsvcとlrcがあり、svcはSMFへ移行されたサービスを表し、lrcは従来のrcスクリプト体系のサービスを表しています。

表示内容 意味
legacy_run 従来のrcスクリプトにより起動制御がされており、SMFによる監視のみ行える
disabled SMFの管理下にある、現在無効のサービス
online SMFの管理下にある、現在起動しているサービス
offline SMFの管理下にあり、現在実行されていない、または利用できる状態にはないサービス
表1 STATE項目の意味

svcadmコマンド

 svcadmコマンドを使用し、SMFで管理されているすべてのサービスを操作できます。SMFで管理されていないサービス(legacy_run)については従来と同じく、rcスクリプトを編集する必要があります。

利用例

 SMFで管理されているサービスの例として、sendmailサービスの停止・起動の手順を以下に示します。


・サービスの確認
# svcs -a | grep sendmail
online         14:21:49 svc:/network/smtp:sendmail
・サービスの停止。この操作を行ったあとは再起動後もサービスは停止状態となる
# svcadm disable svc:/network/smtp:sendmail
# svcs -a | grep sendmail
disabled       16:22:21 svc:/network/smtp:sendmail
# ps -ef | grep sendmail
    root   858   828   0 16:22:45 pts/1       0:00 grep sendmail
・サービスの起動。この操作後、再起動を行ってもサービスは起動状態となる
# svcadm enable svc:/network/smtp:sendmail
# svcs -a | grep sendmail
online         16:23:07 svc:/network/smtp:sendmail
# ps -ef | grep sendmail
    root   865     1   0 16:23:08 ?           0:00 /usr/lib/sendmail -bd -q15m
   smmsp   864     1   0 16:23:08 ?           0:00 /usr/lib/sendmail -Ac -q15m
    root   871   828   0 16:23:41 pts/1       0:00 grep sendmail

UNIX関連の悩みなら、「UNIX処方箋」にどうぞ


Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ