SMFを使用したサービスの起動/停止

SMFでは、'FMRI'と呼ばれる「管理リソース識別子」を使用してサービスの起動・停止などの状態を管理します。

FMRIは、svcsコマンドを打った際に出力される以下のような記述(例えば、以下の”svc:/system/svc/restarter:default”等)の事を指します。

$ svcs
online          3月_31 svc:/system/svc/restarter:default
online          3月_31 svc:/system/filesystem/root:default
online          3月_31 svc:/network/loopback:default
online          3月_31 svc:/system/boot-archive:default
online          3月_31 svc:/network/physical:default
online          3月_31 svc:/system/filesystem/usr:default
~以下、省略~

サービスの状態確認

  • サービスの稼働状態確認。稼働している(onlineになっている)サービスを表示。
$ svcs 
  • サービスの稼働状態確認。全サービスを表示(稼働していないサービスも含む)
$ svcs -a
  • サービス一覧と所属するプロセスを同時に表示
$ svcs -p
~省略~
online          3月_31 svc:/milestone/sysconfig:default
online          3月_31 svc:/system/system-log:default
                3月_31     15272 syslogd
online          3月_31 svc:/system/utmp:default
                3月_31     15276 utmpd
online          3月_31 svc:/system/sac:default
                3月_31     15314 sac
                3月_31     15323 ttymon
online          3月_31 svc:/network/inetd:default
                3月_31     15291 inetd
online          3月_31 svc:/system/console-login:default
                3月_31     15341 ttymon
online          3月_31 svc:/application/print/ppd-cache-update:default
  • 特定のサービスについて詳細を確認。(例:svc:/network/inetd:default)
$ svcs -l svc:/network/inetd:default
fmri         svc:/network/inetd:default
name         inetd
有効         true
状態         online
next_state   none
state_time   2008年03月31日 13時35分23秒
logfile      /var/svc/log/network-inetd:default.log
リスタータ   svc:/system/svc/restarter:default
contract_id  204392
dependency   require_any/error svc:/network/loopback (online)
dependency   require_all/error svc:/system/filesystem/local (online)
dependency   optional_all/error svc:/milestone/network (online)
dependency   optional_all/error svc:/network/rpc/bind (online)
dependency   optional_all/none svc:/network/inetd-upgrade (disabled)
dependency   require_all/none svc:/milestone/sysconfig (online) svc:/milestone/name-services (online)

→サービスの状態変更があった日時や、サービスの稼働状態を記録したログファイルなどがわかる。

  • 特定のサービスの所属するプロセスを表示(例:Apache)
$ svcs -p http
STATE          STIME    FMRI
online          3月_31 svc:/network/http:cswapache2
                3月_31     15440 httpd
                3月_31     15441 httpd
                3月_31     15442 httpd
                3月_31     15443 httpd
                3月_31     15444 httpd
                3月_31     15445 httpd
                3月_31     15446 httpd
                3月_31     15447 httpd
                3月_31     15448 httpd
  • サービスに問題がある場合の状態説明を表示(例:Apache)
$ svcs -xv
svc:/network/http:cswapache2 (Apache 2 HTTP server)
 状態: 2008年04月03日 14時40分51秒 以降maintenanceです
原因: 開始メソッドに繰り返し失敗しました。最後は  状態 1 で終了しました.
   参照: http://sun.com/msg/SMF-8000-KS
   参照: man -M /opt/csw/apache2/man -s 8 httpd
   参照: http://httpd.apache.org
   参照: /var/svc/log/network-http:cswapache2.log
影響: このサービスは動作していません。

設定ファイルの不具合などで起動が出来なかった場合には、上記コマンドで状態を確認後、さらに詳細の状況を確認するためには、「参照」に記載されているログファイル(ここでは'/var/svc/log/network-http:cswapache2.log’)を確認します。

サービスの起動

例としてApacheのFMRIを使用します。

  1. 状態確認。
    $ svcs -a| grep http
    disabled       12:02:38 svc:/network/http:cswapache2
  2. 上記で確認したサービス識別子(svc:/network/http:cswapache2)を用いてサービスを起動させる。
    $ sudo svcadm enable svc:/network/http:cswapache2
  3. 状態確認。サービスの状態がonlineになっていることを確認
    $ svcs -a| grep http
    online         18:46:42 svc:/network/http:cswapache2
  • 一意に識別が可能な場合にはサービス識別子(FMRI)の省略形も使用できます。
  $ svcs http 
  $ sudo svcadm enable http

svcsは一般ユーザーでも実行可能ですが、svcadmの実行にはroot権限が必要です。 上記の例では、一般ユーザーからsudoコマンドを使用した例になっています。

サービスの停止

例としてApacheのFMRIを使用します。

  1. 状態確認。
    $ svcs -a| grep http
    online       12:02:38 svc:/network/http:cswapache2
  2. 上記で確認したサービス識別子(svc:/network/http:cswapache2)を用いてサービスを停止させる。
    $ sudo svcadm disable svc:/network/http:cswapache2
  3. 状態確認。サービスの状態がdisabledになっていることを確認
    $ svcs -a| grep http
    disabled       15:13:00 svc:/network/http:cswapache2

Usage

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 [-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
smf/サービス起動・停止.txt · 最終更新: 2008/04/04 20:03 (外部編集)
SolarisVPS/ZoneExpress Boot OpenSolaris Creative Commons License Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0