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);
scds_timerun() 関数は、hatimerun を使用して、指定されたコマンドを実行します。scds_timerun() は、timeout 引数で指定された時間内にコマンドが完了しない場合、signal 引数で指定されたシグナルを送信してコマンドを強制終了します。
command 引数は入出力のリダイレクトをサポートしません。だたし、リダイレクトを実行するスクリプトを作成し、command 引数を使って、このスクリプトを scds_timerun() が実行するコマンドに指定することは可能です。
scds_timerun_delay()() 関数は、scds_timerun() と同じように動作します。ただし、hatimerun コマンドは –d (遅延) コマンド行オプションを付けて呼び出されます。このオプションは、コマンドの実行が開始されるまでタイムアウトクロックの開始を遅延させます。負荷の高いシステムでは、子プロセスがフォークされる時点から指定されたプログラムの実行が開始される時点まで、数秒間の遅延が発生する可能性があります。–d オプションを使用すれば、割り当てられたタイムアウト期間に対して追加の実行前時間がカウントされなくなります。
次のパラメータがサポートされます。
scds_initialize(3HA) から返されるハンドルです。
実行するコマンドを含む文字列です。
コマンドの実行のために割り当てられた時間 (秒) です。
タイムアウトに達しても完了しないコマンドを強制終了するシグナルです。signal = -1 の場合、SIGKILL が使用されます。signal(3HEAD) を参照してください。
コマンドの実行によって返されるコードです。
scds_timerun() 関数の戻り値は次のとおりです。
関数の実行に成功。
関数の実行に失敗。
コマンドが実行され、cmd_exit_code に子プログラムの終了ステータスを格納。
scds_timerun() が、子プログラムでは検出されなかったタイムアウト以外のエラーを検出。または、hatimerun(1M) がシグナル SIGTERM をキャッチしました。
無効な入力引数を検出。
command 引数によって指定されたコマンドの実行が完了する前にタイムアウト。
その他のエラーコードについては、scha_calls(3HA) を参照してください。
インクルードファイル
ライブラリ
次の属性については、attributes(5) を参照してください。
|
hatimerun(1M), scds_initialize(3HA), scha_calls(3HA), signal(3HEAD), attributes(5)