このメソッドは、プロセス監視機能 (pmfadm) を使用してアプリケーションを起動します。 pmfadm コマンドを使用すると、アプリケーションを再起動するときの期間と回数を指定できます。 このため、RTR ファイルには 2 つのプロパティ Retry_count と Retry_interval があります。Retry_count は、アプリケーションを再起動する回数を指定し、Retry_interval は、アプリケーションを再起動する期間を指定します。
Start メソッドは、scha_resource_get() 関数を使用して Retry_count と Retry_interval の値を取得し、これらの値をシェル変数に格納します。 次に、-n オプションと -t オプションを使用し、これらの値を pmfadm に渡します。
# RTR ファイルから再試行回数の値を取得する。 RETRY_CNT=`scha_resource_get -O Retry_Count -R $RESOURCE_NAME \ -G $RESOURCEGROUP_NAME` # RTR ファイルから次の再試行までの時間(秒数) を取得。この値は pmfadm # に渡されるため分数に変換される。変換時に端数が切り上げられる点に注意。 # たとえば 50 秒は 1 分に変換される。 ((RETRY_INTRVAL=`scha_resource_get -O Retry_Interval -R $RESOURCE_NAME \ -G $RESOURCEGROUP_NAME` / 60)) # PMF制御下で in.named デーモンを起動する。RETRY_INTERVAL の期間、 # $RETRY_COUNT の回数だけクラッシュおよび再起動できる。 # それ以上の回数クラッシュした場合、PMF はそれ以上再試行しない。 # <$PMF_TAG> タグで登録済みのプロセスがある場合、PMF はプロセスが # すでに実行中であるという警告メッセージを送信する。 pmfadm -c $PMF_TAAG -n $RETRY_CNT -t $RETRY_INTRVAL \ /usr/sbin/in.named -c named.conf # HA-DNS が起動していることを示すメッセージを記録。 if [ $? -eq 0 ]; then logger -p ${SYSLOG_FACILITY}.err \ -t [$SYSLOG_TAG] \ "${ARGV0} HA-DNS successfully started" fi exit 0 |