Oracle Solaris Cluster リファレンスマニュアル

印刷ビューの終了

更新: 2015 年 9 月
 
 

scds_timerun (3HA)

名前

scds_timerun, scds_timerun_delay, scds_timerun_delay_threshold, scds_timerun_threshold - 指定されたコマンドを、指定された時間だけ実行する

形式

cc [flags…] –I /usr/cluster/include file –L /usr/cluster/lib 
–l dsdev#include <rgm/libdsdev.h>
scha_err_t scds_timerun(scds_handle_t handle, const char *command, 
time_t timeout, int signal, int *cmd_exit_code);
scha_err_t scds_timerun_delay(scds_handle_t handle, const char *command, 
time_t timeout, int signal, int *cmd_exit_code);
scha_err_t scds_timerun_delay_threshold(scds_handle_t handle, 
const char *command, time_t timeout, int signal, int *cmd_exit_code);
scha_err_t scds_timerun_threshold(scds_handle_t handle, 
const char *command, time_t timeout, int signal, int *cmd_exit_code);

説明

scds_timerun() 関数は、hatimerun を使用して、指定されたコマンドを実行します。scds_timerun() は、timeout 引数で指定された時間内にコマンドが完了しない場合、signal 引数で指定されたシグナルを送信してコマンドを強制終了します。

command 引数は入出力のリダイレクトをサポートしません。だたし、リダイレクトを実行するスクリプトを作成し、command 引数を使って、このスクリプトを scds_timerun() が実行するコマンドに指定することは可能です。

scds_timerun_delay() 関数は、scds_timerun() と同じように動作します。ただし、hatimerun コマンドは –d (遅延) コマンド行オプションを付けて呼び出されます。このオプションは、コマンドの実行が開始されるまでタイムアウトクロックの開始を遅延させます。負荷の高いシステムでは、子プロセスがフォークされる時点から指定されたプログラムの実行が開始される時点まで、数秒間の遅延が発生する可能性があります。–d オプションを使用すれば、割り当てられたタイムアウト期間に対して追加の実行前時間がカウントされなくなります。

scds_timerun_threshold() 関数は、scds_timerun() 関数と同じように指定のコマンドを実行しますが、相違点が 1 つあります。コマンドの実行時間が、タイムアウトの制限は超えずにリソースの Timeout_threshold 値を超えると、syslog 警告メッセージおよび対応する sysevent が生成されます。これらのメッセージは、誤ったフェイルオーバーを回避するにはタイムアウト時間を増やすなどのアクションを実行する必要があることを、管理者に通知します。

scds_timerun_delay_threshold() 関数は、scds_timerun_delay() と同じように動作しますが、相違点が 1 つあります。コマンドの実行時間が、タイムアウトの制限は超えずにリソースの Timeout_threshold 値を超えると、syslog 警告メッセージおよび対応する sysevent が生成されます。これらのメッセージは、誤ったフェイルオーバーを回避するにはタイムアウト時間を増やすなどのアクションを実行する必要があることを、管理者に通知します。

パラメータ

次のパラメータがサポートされます。

cmd_exit_code

コマンドの実行によって返されるコードです。

command

実行するコマンドを含む文字列です。

handle

scds_initialize(3HA) から返されるハンドルです。

signal

タイムアウトに達しても完了しないコマンドを強制終了するシグナルです。signal = -1 の場合、SIGKILL が使用されます。signal(3HEAD) を参照してください。

timeout

コマンドの実行のために割り当てられた時間 (秒) です。

戻り値

scds_timerun() 関数の戻り値は次のとおりです。

0

関数の実行に成功。

0 以外

関数の実行に失敗。

エラー

SCHA_ERR_NOERR

コマンドが実行され、cmd_exit_code に子プログラムの終了ステータスを格納。

SCHA_ERR_INTERNAL

scds_timerun() が、子プログラムでは検出されなかったタイムアウト以外のエラーを検出。または、hatimerun(1M) がシグナル SIGTERM をキャッチしました。

SCHA_ERR_INVAL

無効な入力引数を検出。

SCHA_ERR_TIMEOUT

command 引数によって指定されたコマンドの実行が完了する前にタイムアウト。

その他のエラーコードについては、scha_calls(3HA) を参照してください。

ファイル

/usr/cluster/include/rgm/libdsdev.h

インクルードファイル

/usr/cluster/lib/libdsdev.so

ライブラリ

属性

次の属性については、attributes(5) を参照してください。

属性タイプ
属性値
使用条件
ha-cluster/developer/api
インタフェースの安定性
発展中

関連項目

hatimerun(1M), scds_initialize(3HA), scha_calls(3HA), signal(3HEAD), attributes(5), r_properties(5)