ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
Oracle Solaris 11.1 でのサービスと障害の管理 Oracle Solaris 11.1 Information Library (日本語) |
実行制御スクリプトを使用して従来のサービスを起動または停止する方法
ブート中に system/filesystem/local:default サービスで障害が発生した場合に sulogin プロンプトを強制的に表示する方法
次の各タスクは、SMF サービスの構成方法を示したものです。特に、サービスプロパティーの変更方法と、サービスまたはサービスインスタンスに関するその他の構成情報を示します。
次のタスクマップに、SMF サービスを構成するために必要な手順を示します。
|
この手順は、サービスを起動できるユーザーを特定するプロパティーの変更方法を示しています。
詳細は、『Oracle Solaris 11.1 の管理: セキュリティーサービス』の「割り当てられている管理権限を使用する方法」を参照してください。
最初に、FMRI を指定して適切なサービスを特定します。次に、サービスを起動する UID を割り当てます。
# svccfg -s FMRI svc:/service: setprop start/user = astring: newlogin
# svcadm refresh FMRI
この手順では、setprop サブコマンドで必要な多くの情報を入力することなく複数のサービスプロパティーを変更する方法を示します。この例では、いくつかの DNS サービスプロパティーが変更されます。
詳細は、『Oracle Solaris 11.1 の管理: セキュリティーサービス』の「割り当てられている管理権限を使用する方法」を参照してください。
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"
この時点でファイルを保存しないでください。
ファイルを保存してエディタを終了するときにこれらの変更を適用するには、ファイルの下部にある refresh 行のコメントを解除します。
## Uncomment to apply these changes to all instances of this service. refresh
次の手順は、inetd サービスによって管理されていないサービスの構成を変更する方法を示します。
詳細は、『Oracle Solaris 11.1 の管理: セキュリティーサービス』の「割り当てられている管理権限を使用する方法」を参照してください。
多くのサービスは、起動方法などの構成情報を定義するための設定ファイルを 1 つ以上持っています。それらのファイルはサービス実行中でも変更可能です。ファイルの内容がチェックされるのはサービス起動時です。
# 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 環境変数を変更する方法を示します。
詳細は、『Oracle Solaris 11.1 の管理: セキュリティーサービス』の「割り当てられている管理権限を使用する方法」を参照してください。
# svcs system/cron STATE STIME FMRI online Dec_04 svc:/system/cron:default
次の例では、環境変数 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
# svcadm refresh system/cron # svcadm restart system/cron
# 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
詳細は、『Oracle Solaris 11.1 の管理: セキュリティーサービス』の「割り当てられている管理権限を使用する方法」を参照してください。
このコマンドを実行すると、FMRI で指定されたサービスのすべてのプロパティーが表示されます。
# inetadm -l FMRI
inetd 制御サービスの各プロパティーは、プロパティー名とその値によって定義されます。値を指定せずにプロパティー名を指定した場合、そのプロパティーはデフォルト値にリセットされます。特定のサービスのプロパティーの詳細については、そのサービスのマニュアルページを参照してください。
# inetadm -m FMRI property-name=value
プロパティーを再度一覧表示し、適切に変更されていることを確認します。
# inetadm -l FMRI
プロパティーに対する変更が期待どおりに適用されていることを確認します。
例 2-16 telnet の tcp_trace プロパティーを変更する
次の例は、telnet の tcp_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
プロパティー、プロパティーグループ、およびサービスインスタンスからカスタマイズを削除できます。
このコマンドを実行すると、選択したサービスの admin レイヤーでの変更がすべて削除されます。
% /usr/sbin/svccfg -s FMRI delcust
例 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
詳細は、『Oracle Solaris 11.1 の管理: セキュリティーサービス』の「割り当てられている管理権限を使用する方法」を参照してください。
このコマンドを実行すると、FMRI で指定されたサービスのすべてのプロパティーが表示されます。grep コマンドを追加することで、サービスの exec プロパティーに出力を制限しています。
# inetadm -l FMRI|grep exec
exec プロパティーに設定される command-syntax は、サービス起動時に実行されるコマンド文字列を定義します。
# inetadm -m FMRI exec="command-syntax"
プロパティーを再度一覧表示し、適切に変更されていることを確認します。
# inetadm -l FMRI
次の手順では、inetd.conf エントリを SMF サービス目録に変換します。inetd に依存するサードパーティーのアプリケーションをシステムに追加するたびに、この手順を実行する必要があります。また、/etc/inetd.conf 内のエントリに構成変更を行う必要がある場合にも、この手順を実行してください。
詳細は、『Oracle Solaris 11.1 の管理: セキュリティーサービス』の「割り当てられている管理権限を使用する方法」を参照してください。
inetconv コマンドは、選択されたファイル内の各エントリをサービス目録に変換します。
# inetconv -i filename
例 2-18 /etc/inet/inetd.conf エントリを SMF サービス目録に変換する
# inetconv -i /etc/inet/inetd.conf