GOL @Wiki
Subversionを題材にしたSMF(Service Management Facility)いぢり
最終更新:
divadiva
-
view
Solaris10になって、サービスの管理はSMFで行うようになりました。サービスの管理方法が統一されてとても便利ではあるのですが、いざ自分でサービスを登録しようとすると、XML形式のマニフェストファイルなど、覚えなければいけないことがいろいろと出てきます。ここでは特定のサービスを題材にSMFを勉強していきたいと思います。
Solaris10 SMFによるサービス管理
Solaris10以降、サービスはinetdではなくてSMFで管理されています。とっても便利なので、どんどん使いましょう!
- inetd経由でSMF管理するための設定ファイル生成(Subversionの場合)
まずは/etc/servicesを書きます。
(/etc/services) svn 3690/tcp # Subversion server svn 3690/udp # Subversion server
次に、inetd用のconfファイルを書きます。
(inetd.conf_svn) svn stream tcp nowait svn /usr/local/bin/svnserve svnserve -i -r /export/home/cn/REPOSITORIES
上記2ファイルの内容に矛盾がないことを確認したら、SMF用ファイル変換コマンドを実行します。
# inetconv -i ./inetd.conf_svnserve[Enter] svn -> /var/svc/manifest/network/svn-tcp.xml Importing svn-tcp.xml ...Done
これで、生成が完了します。
inetadmコマンドで確認しましょう。
# inetadm | grep svn enabled online svc:/network/svn/tcp:default
inetd管理のものはinetadmコマンドで無効にできます。
# inetadm -d /network/svn/tcp
- SMFでちゃんと管理(Subversionの場合)
まずはSMFマニフェストをsubversion.xmlという名前で記述し、/var/svc/manifest/networkに置きます。今回の例ではFMRI(SMFサービス名)をsvc:/network/subversionにしています。
さらに、上記ファイルは/lib/svc/methodにおいてあるシェルスクリプトsubversionでサーバを起動・停止することを前提としていますので、subversionを記述して、/lib/svc/methodに置きます。
さらに、上記ファイルは/lib/svc/methodにおいてあるシェルスクリプトsubversionでサーバを起動・停止することを前提としていますので、subversionを記述して、/lib/svc/methodに置きます。
ファイルが揃ったら、SMFに登録します。
# svccfg import /var/svc/manifest/network/subversion.xml # svcs -a | grep subv <= 確認 online 11:36:53 svc:/network/subversion:default
ちなみに、マニフェストの削除は、
# svccfg delete svc:/network/subversion
サービスの開始、停止は、
# svcadm enable svc:/network/subversion # svcadm disable svc:/network/subversion
になります!
- その他