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

印刷ビューの終了

更新: 2016 年 11 月
 
 

サービスバンドル生成ツールを使用した、スケジュールされているサービスの作成

svcbundle コマンドを使用して、スケジュールされているサービスを作成する場合、service-namestart-method の両方のプロパティーとともに interval プロパティーを指定する必要があります。デフォルトで、svcbundletransient サービスを作成します。-s period を指定すると、svcbundle によって定期的なサービスが作成されます。

svcbundle を使用して、スケジュールされているサービスを作成する方法

  1. 標準の場所に起動メソッドをコピーします。

    この例では、このサービスの起動メソッドの名前は sched_ex です。この実行可能ファイルを /lib/svc/method/sched_ex にコピーします。

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

    この例では、サービス名は site/sched_ex です。起動メソッドのスケジューリングの間隔を指定します。bundle-typedurationmodelrc-scriptrefresh-method、または stop-method のどのプロパティーも指定しないでください。

    $ svcbundle -o /tmp/sched_ex.xml -s service-name=site/sched_ex \
          -s start-method=/lib/svc/method/sched_ex -s interval=week

    interval プロパティーを指定すると、svcbundle によって scheduled_method 要素が作成され、これにより、マニフェストのインポート時にサービスのリスタータは定期的なリスタータに設定されます。interval プロパティーの値は、scheduled_method 要素の interval 属性の値になります。start-method プロパティーの値は、scheduled_method 要素の exec 属性の値になります。

  3. マニフェストに対し必要な変更をすべて行います。

    /tmp/ex_svc.xml マニフェストの内容が必要なものかを検証します。次のような変更を行うことができます。

    • scheduled_method 要素に追加の制約を指定します。

    • 不規則な間隔での呼び出しのスケジュールで説明されているように、タイプ schedule の追加のプロパティーグループを指定します。

    • scheduled_method 要素に method_context 要素を追加します。

    • デフォルトのインスタンスの enabled 属性の値を true から false に変更します。

    サービスの内容とサービスのプロパティーの使用方法を説明するコメントを追加します。

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

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

  5. マニフェストを標準ディレクトリにコピーします。
    $ cp /tmp/sched_ex.xml /lib/svc/manifest/site/sched_ex.xml
  6. マニフェストをインポートし、サービスを起動します。
    $ svcadm restart manifest-import
  7. 新しいサービスを一覧表示します。

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

    $ svcs sched_ex