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);
The scds_timerun() function executes a specified command using hatimerun. If the command does not complete within the allotted time period, which is specified by the timeout argument, scds_timerun() sends a signal, specified by the signal argument, to kill it.
The command argument does not support I/O redirection. However, you can write a script to perform redirection and then identify this script in the command argument as the command for scds_timerun() to execute.
The scds_timerun_delay()() function behaves the same as scds_timerun(), except that it invokes the hatimerun command with the –d (delay) command-line option. This option delays starting the timeout clock until the command has begun executing. On a heavily loaded system, there can be seconds of delay from the time that the child process is forked until the time that the designated program begins to execute. The use of the –d option avoids counting that additional pre-execution time against the allotted timeout period.
The following parameters are supported:
The handle returned from scds_initialize(3HA)
String that contains the command to run
Time, in seconds, allotted to run the command
Signal to kill the command if it is still running when the timeout expires. If signal = -1, then SIGKILL is used. See signal (3HEAD) .
Return code from execution of the command
The scds_timerun() function returns the following:
The function succeeded.
The function failed.
The command executed and cmd_exit_code contains the child program's exit status.
The timeout did not occur, but some other error was detected by scds_timerun() that was not an error detected by the child program. Or hatimerun(1M) caught the signal SIGTERM.
There was an invalid input argument.
The timeout occurred before the command specified by the command argument finished executing.
See scha_calls(3HA) for a description of other error codes.
Include file
Library
See attributes (5) for descriptions of the following attributes:
|
hatimerun(1M), scds_initialize(3HA), scha_calls(3HA), signal (3HEAD) , attributes (5)