JavaScript is required to for searching.
ナビゲーションリンクをスキップ
印刷ビューの終了
Oracle Solaris 11.1 でのサービスと障害の管理     Oracle Solaris 11.1 Information Library (日本語)
search filter icon
search icon

ドキュメントの情報

はじめに

1.  サービスの管理 (概要)

2.  サービスの管理 (タスク)

SMF サービスのモニタリング

サービスのモニタリング (タスクマップ)

サービスのステータスを一覧表示する方法

サービスのカスタマイズを一覧表示する方法

特定のサービスに依存するサービスを表示する方法

特定のサービスが依存するサービスを表示する方法

SMF 遷移イベントの通知を設定する方法

SMF サービスの管理

SMF サービス (タスクマップ)

RBAC 権利プロファイルを使って SMF を管理する

SMF サービスを作成する方法

サービスインスタンスを無効にする方法

サービスインスタンスを有効にする方法

サービスを再起動する方法

保守状態のサービスを復元する方法

SMF プロファイルを作成する方法

SMF プロファイルを手動で作成する方法

SMF プロファイルを適用する方法

SMF サービスの構成

SMF サービスの構成 (タスクマップ)

SMF サービスプロパティーの変更方法

1 つのサービスの複数プロパティーを変更する方法

ファイルで構成されているサービスの変更方法

サービスの環境変数を変更する方法

inetd 制御サービスのプロパティーを変更する方法

サービスのカスタマイズを削除する方法

inetd 制御サービスのコマンド行引数を変更する方法

inetd.conf エントリを変換する方法

実行制御スクリプトの使用

実行制御スクリプトの使用 (タスクマップ)

実行制御スクリプトを使用して従来のサービスを起動または停止する方法

実行制御スクリプトを追加する方法

実行制御スクリプトを無効にする方法

実行制御スクリプトを SMF サービスに変換する方法

サービス管理機能のトラブルシューティング

SMF のトラブルシューティング (タスクマップ)

起動していないサービスをデバッグする方法

破壊されたリポジトリを修復する方法

どのサービスも起動しないでブートする方法

詳細モードでブートする方法

ブート中に system/filesystem/local:default サービスで障害が発生した場合に sulogin プロンプトを強制的に表示する方法

3.  障害管理の使用

索引

SMF サービスの構成

次の各タスクは、SMF サービスの構成方法を示したものです。特に、サービスプロパティーの変更方法と、サービスまたはサービスインスタンスに関するその他の構成情報を示します。

SMF サービスの構成 (タスクマップ)

次のタスクマップに、SMF サービスを構成するために必要な手順を示します。

タスク
説明
参照先
サービスを変更します。
指定されたサービスインスタンスのサービスプロパティーを変更します。
指定されたサービスインスタンスの複数のプロパティーを変更します。
サービスインスタンスの構成ファイルを変更します。
サービスインスタンスの環境変数を変更します。
サービスに対する admin レイヤーでのカスタマイズを削除します。
inetd サービスを変更します。
inetd によって制御されるサービスの構成プロパティーを変更します。
inetd によって制御されるサービスの起動オプションを変更します。
inetd.conf エントリを変換します。
inetd サービスを、SMF でモニター可能な従来の実行サービスに変換します。

SMF サービスプロパティーの変更方法

この手順は、サービスを起動できるユーザーを特定するプロパティーの変更方法を示しています。

  1. 管理者になるか、Service Management 権利プロファイルを含む役割になります。

    詳細は、『Oracle Solaris 11.1 の管理: セキュリティーサービス』の「割り当てられている管理権限を使用する方法」を参照してください。

  2. start/user プロパティーに割り当てられた値を変更します。

    最初に、FMRI を指定して適切なサービスを特定します。次に、サービスを起動する UID を割り当てます。

    # svccfg -s FMRI
    svc:/service: setprop start/user = astring: newlogin
  3. サービスをリフレッシュします。
    # svcadm refresh FMRI

1 つのサービスの複数プロパティーを変更する方法

この手順では、setprop サブコマンドで必要な多くの情報を入力することなく複数のサービスプロパティーを変更する方法を示します。この例では、いくつかの DNS サービスプロパティーが変更されます。

  1. 管理者になるか、Service Management 権利プロファイルを含む役割になります。

    詳細は、『Oracle Solaris 11.1 の管理: セキュリティーサービス』の「割り当てられている管理権限を使用する方法」を参照してください。

  2. プロパティー値を変更します。

    editprop サブコマンドは、指定されたサービスのプロパティーグループとプロパティーを一時ファイルに収集し、VISUAL または EDITOR 環境変数によって名前が指定されるプログラムが起動されてファイルが編集されます。詳細は、svccfg(1M) のマニュアルページを参照してください。

    # svccfg -s network/dns/client editprop
    
    ##
    ## The value used to construct the "nameserver" directive in resolv.conf(4).
    ##
    setprop config/nameserver = net_address: (192.168.1.10 192.168.1.11)
    
    ##
    ## The value used to construct the "search" directive in resolv.conf(4).
    ##
    # setprop config/search = astring: "example.com sales.example.com" 

    この時点でファイルを保存しないでください。

  3. 変更内容をすべてのインスタンスに適用します。

    ファイルを保存してエディタを終了するときにこれらの変更を適用するには、ファイルの下部にある refresh 行のコメントを解除します。

    ## Uncomment to apply these changes to all instances of this service.
    refresh

ファイルで構成されているサービスの変更方法

次の手順は、inetd サービスによって管理されていないサービスの構成を変更する方法を示します。

  1. 管理者になるか、Service Management 権利プロファイルを含む役割になります。

    詳細は、『Oracle Solaris 11.1 の管理: セキュリティーサービス』の「割り当てられている管理権限を使用する方法」を参照してください。

  2. 必要に応じて構成ファイルを変更します。

    多くのサービスは、起動方法などの構成情報を定義するための設定ファイルを 1 つ以上持っています。それらのファイルはサービス実行中でも変更可能です。ファイルの内容がチェックされるのはサービス起動時です。

  3. サービスを再起動します。
    # svcadm restart FMRI

例 2-15 新しい NTP サーバーを追加する

NTP クライアントをサポートするために新しい NTP サーバーを追加するには、そのサーバー用の新しいエントリを /etc/inet/ntp.conf ファイルに追加します。次に、NTP サービスを再起動します。この例は、ntp.conf ファイルの内容とサービスの再起動方法を示しています。

# cat /etc/inet/ntp.conf
   .
   .
server ntpserver1.example.com
server ntpserver2.example.com
# svcadm restart svc:/network/ntp:default

サービスの環境変数を変更する方法

この手順は、デバッグに役立つよう cron 環境変数を変更する方法を示します。

  1. 管理者になるか、Service Management 権利プロファイルを含む役割になります。

    詳細は、『Oracle Solaris 11.1 の管理: セキュリティーサービス』の「割り当てられている管理権限を使用する方法」を参照してください。

  2. サービスが実行されていることを確認します。
    # svcs system/cron
    STATE          STIME    FMRI
    online         Dec_04   svc:/system/cron:default
  3. 環境変数を設定します。

    次の例では、環境変数 UMEM_DEBUG および LD_PRELOAD を設定しています。setenv サブコマンドについては、svccfg(1M) のマニュアルページを参照してください。

    # svccfg -s system/cron:default setenv UMEM_DEBUG default
    # svccfg -s system/cron:default setenv LD_PRELOAD libumem.so
  4. サービスのリフレッシュと再起動を行います。
    # svcadm refresh system/cron
    # svcadm restart system/cron
  5. 正しく変更されたことを確認します。
    # pargs -e `pgrep -f /usr/sbin/cron`
    100657: /usr/sbin/cron
    envp[0]: LOGNAME=root
    envp[1]: LD_PRELOAD=libumem.so
    envp[2]: PATH=/usr/sbin:/usr/bin
    envp[3]: SMF_FMRI=svc:/system/cron:default
    envp[4]: SMF_METHOD=/lib/svc/method/svc-cron
    envp[5]: SMF_RESTARTER=svc:/system/svc/restarter:default
    envp[6]: TZ=GB
    envp[7]: UMEM_DEBUG=default

inetd 制御サービスのプロパティーを変更する方法

  1. 管理者になるか、Service Management 権利プロファイルを含む役割になります。

    詳細は、『Oracle Solaris 11.1 の管理: セキュリティーサービス』の「割り当てられている管理権限を使用する方法」を参照してください。

  2. 特定のサービスのプロパティーを一覧表示します。

    このコマンドを実行すると、FMRI で指定されたサービスのすべてのプロパティーが表示されます。

    # inetadm -l FMRI
  3. サービスのプロパティーを変更します。

    inetd 制御サービスの各プロパティーは、プロパティー名とその値によって定義されます。値を指定せずにプロパティー名を指定した場合、そのプロパティーはデフォルト値にリセットされます。特定のサービスのプロパティーの詳細については、そのサービスのマニュアルページを参照してください。

    # inetadm -m FMRI property-name=value
  4. プロパティーが変更されたことを確認します。

    プロパティーを再度一覧表示し、適切に変更されていることを確認します。

    # inetadm -l FMRI
  5. 変更が適用されていることを確認します。

    プロパティーに対する変更が期待どおりに適用されていることを確認します。

例 2-16 telnettcp_trace プロパティーを変更する

次の例は、telnettcp_trace プロパティーを true に設定する方法を示しています。telnet コマンドの実行後の syslog 出力の結果から、変更が適用されていることがわかります。

# inetadm -l svc:/network/telnet:default
SCOPE    NAME=VALUE
         name="telnet"
 .
 .
default  inherit_env=TRUE
default  tcp_trace=FALSE
default  tcp_wrappers=FALSE
# inetadm -m svc:/network/telnet:default tcp_trace=TRUE
# inetadm -l svc:/network/telnet:default
SCOPE    NAME=VALUE
         name="telnet"
 .
 .
default  inherit_env=TRUE
         tcp_trace=TRUE
default  tcp_wrappers=FALSE
# telnet localhost
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
login: root
Password: 
.
.
.
Last login: Mon Jun 21 05:55:45 on console
Sun Microsystems Inc.   SunOS 5.10      s10_57  May 2004
# ^D
Connection to localhost closed by foreign host.
# tail -1 /var/adm/messages
Jun 21 06:04:57 yellow-19 inetd[100308]: [ID 317013 daemon.notice] telnet[100625]
    from 127.0.0.1 32802

サービスのカスタマイズを削除する方法

プロパティー、プロパティーグループ、およびサービスインスタンスからカスタマイズを削除できます。

例 2-17 プロパティーからカスタマイズを削除する

この例では、サービスからカスタマイズを削除した影響について説明します。最初に、rmtmpfiles サービスの clean_vartmp プロパティーを設定することでブートプロセス中に /var/tmp が消去されるようするカスタマイズを適用します。特権ユーザータイプとして次のコマンドを実行します。

# svccfg -s svc:/system/rmtmpfiles setprop options/clean_vartmp = true
# svcadm refresh svc:/system/rmtmpfiles

次に、プロパティーが変更されていることを確認します。

$ svcprop -p options/clean_vartmp svc:/system/rmtmpfiles
true

カスタマイズを確認するには、次のコマンドを入力します。

$ svccfg -s svc:/system/rmtmpfiles listcust
options/clean_vartmp    boolean     admin      true
$ svcprop -p options/clean_vartmp -l all svc:/system/rmtmpfiles
options/clean_vartmp boolean manifest false
options/clean_vartmp boolean admin true

カスタマイズを削除するには、特権ユーザーとして次のコマンドを入力します。

# svccfg -s svc:/system/rmtmpfiles delcust options/clean_vartmp
 Deleting customizations for property: options/clean_vartmp

ここでカスタマイズを確認するためのコマンドを実行すると、次のようになります。

$ svccfg -s svc:/system/rmtmpfiles listcust
$ svcprop -p options/clean_vartmp -l all svc:/system/rmtmpfiles
options/clean_vartmp boolean manifest false

inetd 制御サービスのコマンド行引数を変更する方法

  1. 管理者になるか、Service Management 権利プロファイルを含む役割になります。

    詳細は、『Oracle Solaris 11.1 の管理: セキュリティーサービス』の「割り当てられている管理権限を使用する方法」を参照してください。

  2. 特定のサービスの exec プロパティーを表示します。

    このコマンドを実行すると、FMRI で指定されたサービスのすべてのプロパティーが表示されます。grep コマンドを追加することで、サービスの exec プロパティーに出力を制限しています。

    # inetadm -l FMRI|grep exec
  3. サービスの exec プロパティーを変更します。

    exec プロパティーに設定される command-syntax は、サービス起動時に実行されるコマンド文字列を定義します。

    # inetadm -m FMRI exec="command-syntax"
  4. プロパティーが変更されたことを確認します。

    プロパティーを再度一覧表示し、適切に変更されていることを確認します。

    # inetadm -l FMRI

inetd.conf エントリを変換する方法

次の手順では、inetd.conf エントリを SMF サービス目録に変換します。inetd に依存するサードパーティーのアプリケーションをシステムに追加するたびに、この手順を実行する必要があります。また、/etc/inetd.conf 内のエントリに構成変更を行う必要がある場合にも、この手順を実行してください。

  1. 管理者になるか、Service Management 権利プロファイルを含む役割になります。

    詳細は、『Oracle Solaris 11.1 の管理: セキュリティーサービス』の「割り当てられている管理権限を使用する方法」を参照してください。

  2. inetd.conf エントリを変換します。

    inetconv コマンドは、選択されたファイル内の各エントリをサービス目録に変換します。

    # inetconv -i filename

例 2-18 /etc/inet/inetd.conf エントリを SMF サービス目録に変換する

# inetconv -i /etc/inet/inetd.conf