このセクションでは、実行制御サービスを SMF で管理できるように、実行制御スクリプトを SMF サービスマニフェストに置き換える方法について説明します。
この手順では、svcbundle コマンドで rc-script プロパティーを使用して、実行制御スクリプトを SMF サービスに変換する方法について説明します。
デフォルトで、svcbundle は transient サービスを作成します。この実行制御スクリプトが、長時間実行するデーモンを起動し、そのためにこのサービスが contract サービスであるかどうかを判断します。サービスモデルについては、Oracle Solaris 11.3 でのシステムサービスの管理 の サービスモデル、svcbundle(1M) マニュアルページの model プロパティー、および svc.startd(1M) マニュアルページの startd/duration プロパティーを参照してください。
実行制御スクリプトを変換するには、rc-script プロパティー名を、svcbundle コマンドの -s オプションとともに使用します。詳細は、svcbundle(1M) のマニュアルページの rc-script プロパティーを参照するか、svcbundle help rc-script と入力してください。
この例では、サービス名は ex_con であり、レベル 2 で実行する契約サービスです。実行レベルは、rc-script プロパティー値のスクリプト名のあとにあるコロンのあとに指定されています。
$ svcbundle -o /tmp/ex_con.xml -s service-name=ex_con -s rc-script=/etc/init.d/ex_con:2 -s model=contract
/tmp/ex_con.xml マニフェストの内容が必要としている内容かを検証します。たとえば、依存関係を追加したり、メソッドのタイムアウトを調整したりする必要がある場合があります。サービスの内容とサービスのプロパティーの使用方法を説明するコメントを追加します。
svccfg validate コマンドを使用して、サービスマニフェストが有効であることを確認します。
$ svccfg validate /tmp/ex_con.xml
$ cp /tmp/ex_con.xml /lib/svc/manifest/site/ex_con.xml
$ /etc/init.d/ex_con stop
該当する rcn.d ディレクトリから実行制御スクリプトへのリンクを削除します。
$ svcadm restart manifest-import
新しいサービスが存在し、予想される状態になっていることを検証します。
$ svcs ex-con