Solaris - SMFによるサービス制御
- はじめに
Solaris 10 から実装されたSMF (Service Management Facility)の設定について解説します。
rc*.dで制御されていた多くのサービスがSMFによる制御に代わり、
またinetd(/etc/inetd.conf)経由のtelnetやftpもSMF配下になりました。
設定内容については、/var/svc/manifest 以下にxml形式で保存されています。
ここでは例として、Courier-IMAP(/usr/local/libexec/imapd.rc)をSMC配下で制御するように設定しますが、
必要最低限の設定ですので、詳細についてはman を参考にして下さい。
- サービス登録
# svccfg
svc:> add mysetup/courier/imap
svc:> select mysetup/courier/imap
svc:/mysetup/courier/imap> addpg start method
svc:/mysetup/courier/imap> addpg stop method
svc:/mysetup/courier/imap> setprop start/exec = astring:"/usr/local/libexec/imapd.rc start"
svc:/mysetup/courier/imap> setprop stop/exec = astring:"/usr/local/libexec/imapd.rc stop"
svc:/mysetup/courier/imap> add default
svc:/mysetup/courier/imap> quit
- サービス自動起動のOn/Off設定
ここまでは、まだサービスをSMF配下にエントリーしたにすぎません。
サービスが自動で起動・停止するように、svcadm コマンドでサービスを有効化します。
# svcadm -v enable svc:/mysetup/courier/imap:default
- サービスの起動状況
各サービスの自動起動設定状況については、「svcs」コマンドで確認します。
「-a」は全情報の表示、「-p」はプロセスIDの表示オプションです。
- その他
inetdの制御については、inetadm コマンドを使って各サービスを設定するようになりました。
/etc/inetd.conf を見ても、これまでのtelnet や ftp のエントリはありません。
# inetadm
と実行する事で、登録状況を確認できます。
有効化する場合は、
# inetadm -e svc:/network/ftp:default
無効化する場合は
# inetadm -d svc:/network/ftp:default
とします。
inetdへ新たにサービスを登録したい場合は、「inetconv」という便利な変換コマンドがありますので、
これまで通り/etc/inetd.conf へいったん設定し、「inetconv」を実行して下さい。
新しい実装へ移行登録されます。