Go to main content

Reference for Oracle Solaris Cluster 4.4

Exit Print View

Updated: August 2018
 
 

scds_pmf_start(3HA)

Name

scds_pmf_start, scds_pmf_start_env - execute a program under PMF control

Synopsis

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)

Description

The scds_pmf_start() function executes a program, specified by command, under PMF control. This function is equivalent to the pmfadm(8) 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.

Parameters

The following parameters are supported:

handle

The handle returned from scds_initialize(3HA)

program_type

Type of program to execute. Valid types are:

SCDS_PMF_TYPE_SVC

Data service application

SCDS_PMF_TYPE_MON

Fault monitor

SCDS_PMF_TYPE_OTHER

Other

instance

For resources with multiple instances, this integer, starting at 0, uniquely identifies the instance. For single instance resources, use 0.

command

Command, including command line arguments, to execute under PMF control.

child_monitor_level

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.

env

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.

Return Values

The scds_pmf_start() function returns the following:

0

The function succeeded.

nonzero

The function failed.

Errors

SCHA_ERR_INTERNAL

The underlying application process is already running.

SCHA_ERR_NOERR

The function succeeded.

Other values

The function failed. 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

execve(2), scds_initialize(3HA), scds_pmf_stop(3HA), scds_svc_wait(3HA), scha_calls(3HA), attributes(7), pmfadm(8)