Go to main content

Reference for Oracle Solaris Cluster 4.4

Exit Print View

Updated: August 2018
 
 

scds_timerun_delay_threshold (3HA)

Name

scds_timerun, scds_timerun_delay, scds_timerun_delay_threshold, scds_timerun_threshold - execute a given command in a given amount of time

Synopsis

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);

Description

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 scds_timerun_threshold() function executes the same specified command as the scds_timerun() function, with one difference. If the execution time of the command exceeds the Timeout_threshold value of the resource without exceeding the timeout limit, a syslog warning message and a corresponding sysevent are generated. These messages notify the administrator that action might be needed to avoid false failovers, such as to increase the timeout period.

The scds_timerun_delay_threshold() function behaves the same as scds_timerun_delay(), with one difference. If the execution time of the command exceeds the Timeout_threshold value of the resource without exceeding the timeout limit, a syslog warning message and a corresponding sysevent are generated. These messages notify the administrator that action might be needed to avoid false failovers, such as to increase the timeout period.

Parameters

The following parameters are supported:

cmd_exit_code

Return code from execution of the command

command

String that contains the command to run

handle

The handle returned from scds_initialize(3HA)

signal

Signal to kill the command if it is still running when the timeout expires. If signal = -1, then SIGKILL is used. See signal(3HEAD).

timeout

Time, in seconds, allotted to run the command

Return Values

The scds_timerun() function returns the following:

0

The function succeeded.

nonzero

The function failed.

Errors

SCHA_ERR_NOERR

The command executed and cmd_exit_code contains the child program's exit status.

SCHA_ERR_INTERNAL

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(8) caught the signal SIGTERM.

SCHA_ERR_INVAL

There was an invalid input argument.

SCHA_ERR_TIMEOUT

The timeout occurred before the command specified by the command argument finished executing.

See scha_calls(3HA) for a description of other error codes.

Files

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

Include file

/usr/cluster/lib/libdsdev.so

Library

Attributes

See attributes(7) for descriptions of the following attributes:

ATTRIBUTE TYPE
ATTRIBUTE VALUE
Availability
ha-cluster/developer/api
Interface Stability
Evolving

See Also

scds_initialize(3HA), scha_calls(3HA), signal(3HEAD), attributes(7), r_properties(7), hatimerun(8)