Skip Navigation Links
Exit Print View
| Oracle Solaris Cluster Reference Manual Oracle Solaris Cluster 4.1

Search Scope:

- This Document
- Entire Library

### 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`(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.

## 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`(5) for descriptions of the following attributes:

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

## See Also

`pmfadm`(1M), `scds_initialize`(3HA), `scds_pmf_stop`(3HA), `scds_svc_wait`(3HA), `scha_calls`(3HA), `execve`(2), `attributes`(5)

Copyright © 2000, 2012, Oracle and/or its affiliates. All rights reserved. Legal Notices |