cc [flags…]-I /usr/cluster/include file -L /usr/cluster/lib -l dsdev #include <rgm/libdsdev.h>scha_err_t scds_pmf_start(scds_handle_t handle, scds_pmf_type_t program_type, int instance, const char *command, int child_monitor_level);
The scds_pmf_start() function executes a program, specified by command, under PMF control. This function is equivalent to the pmfadm(1M) command with the -c option.
The command argument contains a command line and command line arguments that are passed to the function.
When you start a data service application or other process (program type SCDS_PMF_TYPE_SVC or SCDS_PMF_TYPE_OTHER) under PMF with scds_pmf_start(), you choose the level of child processes to monitor by using the child_monitor_level argument. Values for the child_monitor_level argument are none, some or all. The child_monitor_level argument specifies that children up to and including level child_monitor_level will be monitored. The original process is executed at level 0, its children at level 1, their children at level 2, and so on. Any new fork operation produces a new level of children. Specify -1 to monitor all levels of children.
For example, if the command to start is a daemon, the appropriate child_monitor_level is 1. If the command to start is a script that starts a daemon, the appropriate value for child_monitor_level is 2.
For a fault monitor (program type SCDS_PMF_TYPE_MON), the child_monitor_level argument is ignored and 0 is used.
If the underlying application process is already running, scds_pmf_start() prints a syslog() error and returns SCHA_ERR_INTERNAL because the RGM guarantees that two calls to a START function on a node must have an intervening STOP function.
The following parameters are supported:
The handle returned from scds_initialize(3HA)
Type of program to execute. Valid types are:
Data service application
For resources with multiple instances, this integer, starting at 0, uniquely identifies the instance. For single instance resources, use 0.
Command, including command line arguments, to execute under PMF control.
For program_type SCDS_PMF_TYPE_SVC and SCDS_PMF_TYPE_OTHER, this argument specifies the level of child processes to be monitored (equivalent to the -C option to pmfadm). Use -1 to specify all levels of child processes. For program_type SCDS_PMF_TYPE_MON, this argument is ignored.
The scds_pmf_start() function returns the following:
The function succeeded.
The function failed.
The underlying application process is already running.
The function succeeded.
The function failed. See scha_calls(3HA) for a description of other error codes.
See attributes(5) for descriptions of the following attributes: