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

印刷ビューの終了

更新: 2016 年 11 月
 
 

periodic_method 要素の指定

periodic_method 要素が存在する場合、インスタンスは定期的なリスタータに自動的に委任されます。periodic_method 要素は、service 要素内または instance 要素内で指定できます。periodic_method 要素は、定期的なサービスのメソッド情報とスケジューリング情報の両方を指定し、このセクションで説明されている属性と要素を持つことができます。period 属性と exec 属性は必須です。

定期的なサービスのスケジューリング制約属性

表 2で示したように、time 値の単位は秒数です。

delay 属性

オプション。値タイプ: time。デフォルト値: 0。サービスが online 状態に遷移してから、起動メソッドの最初の呼び出しまでの固定の秒数。

period 属性

必須。値タイプ: time。起動メソッドの呼び出し間の秒数。

jitter 属性

オプション。値タイプ: time。デフォルト値: 0。period から起動メソッドが実行されるまでのランダムな最大秒数。使用される最後の秒数は、0 からこのプロパティーの値までの範囲です。

その他の定期的なサービスのスケジューリング属性

persistent 属性

オプション。値タイプ: boolean。デフォルト値: false。スケジューリングをシステムの停止時間を越えて維持するかどうかを指定します。

値が false であれば、定期的なサービスインスタンスが有効にされたあとで online 状態に遷移した場合と同様に、起動メソッドのスケジューリングが再開されます。

persistent 属性の値が true で、recover 属性 (下記) の値が false の場合、停止時間から回復したインスタンスの起動メソッドのスケジューリングは、停止時間が発生する前に定義されたものと同じスケジュールで続行されます。

persistent 属性の値が true で、recover 属性の値が true の場合は、次の recover 属性の説明を参照してください。

recover 属性

オプション。値タイプ: boolean。デフォルト値: false。システムの停止時間中に呼び出しが失われた場合にインスタンスでリカバリを実行するかどうかを指定します。

このインスタンスの persistent 属性の値が true である場合にのみ、この値は有効です。

persistent 属性の値が true で、recover 属性の値が true の場合、インスタンスがシステムの停止時間から回復したら可能なかぎりすぐに、定期的なリスタータはインスタンスの起動メソッドを呼び出します。後続の呼び出しは、period 値と jitter 値に従って発生します。

persistent プロパティーの値が true で、recover プロパティーの値が false の場合は、前述の persistent プロパティーの説明を参照してください。

定期的なサービスの起動メソッドの属性とコンテキスト

exec 属性

必須。値タイプ: astringexec システム呼び出しに渡すために適している必要がある、行うべきアクション。smf_method(5) のマニュアルページを参照してください。

この起動メソッドはタスクを実行したあとで、period 属性で指定された時間内に終了します。

定期的なリスタータは一時的なサービスを実装しないため、SMF_EXIT_TEMP_TRANSIENT 終了コードは、定期的なサービスの起動メソッドには適用されません。定期的なサービスの起動メソッドで使用する場合、SMF_EXIT_TEMP_TRANSIENT 終了コードは SMF_EXIT_ERR_OTHER 終了コードと同じように扱われます。

定期的なサービスインスタンスでは、起動メソッドのみが使用されます。リフレッシュまたは停止メソッドが定義されている場合、警告メッセージがマニフェストのインポート時に発行され、リフレッシュまたは停止メソッドは無視されます。定期的なインスタンスがリフレッシュされると、サービス構成リポジトリへの定期的なサービスデータの格納で説明されているように、定期的なリスタータは、periodic プロパティーグループ内のプロパティーの値を再読み取りします。定期的なインスタンスによって契約されているプロセスは永続的に実行されないため、定期的なリスタータは停止メソッドを必要としません。定期的なインスタンスは短期のプロセスを実行したあとで、次にスケジュールされた実行時間まで待機します。

timeout_seconds 属性

オプション。値タイプ: integer。メソッドのアクションが完了するまで待機する秒数。無限のタイムアウトを指定するには、値 0 または -1 を指定します。

exec_method 要素では timeout_seconds 属性値が必要です。この periodic_method 要素で timeout_seconds 属性の値を指定しない場合、exec_method 要素の値は無限であると想定されます。指定された timeout_seconds 値より長く起動メソッドが実行される場合、または定期的なリスタータが次の期間に起動メソッドを呼び出そうとしたときに契約済みプロセスがまだ存在する場合の起動メソッドのスケジューリングに関する説明については、起動メソッドの問題後のスケジュールを参照してください。

method_context 要素

オプション。smf_method(5) のマニュアルページのメソッドコンテキストに関するセクションを参照してください。