Go to main content
Oracle® Solaris 11.3 でのシステムサービスの開発

印刷ビューの終了

更新: 2016 年 11 月
 
 

実行制御スクリプトの SMF サービスへの変換

このセクションでは、実行制御サービスを SMF で管理できるように、実行制御スクリプトを SMF サービスマニフェストに置き換える方法について説明します。

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

この手順では、svcbundle コマンドで rc-script プロパティーを使用して、実行制御スクリプトを SMF サービスに変換する方法について説明します。

  1. サービスモデルを判断します。

    デフォルトで、svcbundletransient サービスを作成します。この実行制御スクリプトが、長時間実行するデーモンを起動し、そのためにこのサービスが contract サービスであるかどうかを判断します。サービスモデルについては、Oracle Solaris 11.3 でのシステムサービスの管理 の サービスモデルsvcbundle(1M) マニュアルページの model プロパティー、および svc.startd(1M) マニュアルページの startd/duration プロパティーを参照してください。

  2. 初期マニフェストを作成します。

    実行制御スクリプトを変換するには、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
  3. マニフェストに対し必要な変更をすべて行います。

    /tmp/ex_con.xml マニフェストの内容が必要としている内容かを検証します。たとえば、依存関係を追加したり、メソッドのタイムアウトを調整したりする必要がある場合があります。サービスの内容とサービスのプロパティーの使用方法を説明するコメントを追加します。

  4. マニフェストが有効であることを検証します。

    svccfg validate コマンドを使用して、サービスマニフェストが有効であることを確認します。

    $ svccfg validate /tmp/ex_con.xml
  5. マニフェストを標準ディレクトリにコピーします。
    $ cp /tmp/ex_con.xml /lib/svc/manifest/site/ex_con.xml
  6. 既存のサービスを停止します。
    $ /etc/init.d/ex_con stop
  7. 実行制御スクリプトを無効にします。

    該当する rcn.d ディレクトリから実行制御スクリプトへのリンクを削除します。

  8. マニフェストをインポートし、サービスを起動します。
    $ svcadm restart manifest-import
  9. 新しいサービスを一覧表示します。

    新しいサービスが存在し、予想される状態になっていることを検証します。

    $ svcs ex-con