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)scha_err_t scds_pmf_start_env(scds_handle_t handle, scds_pmf_type_t program_type, int instance, const char *command, int child_monitor_level, char ** env)
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, monitor, or other process (program type SCDS_PMF_TYPE_SVC, SCDS_PMF_TYPE_MON, 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. The child_monitor_level argument specifies that children up to and including level child_monitor_level is 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 0. If the command to start is a script that starts a daemon, the appropriate value for child_monitor_level is 1.
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.
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.
Specifies an array of character pointers to environment strings, which are described in the execve (2) man page. When the program that the command parameter specifies is executed, this environment is passed to this program.
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: