Oracle® Solaris Cluster 参考手册

退出打印视图

更新时间: 2014 年 7 月,E51743-01
 
 

scds_pmf_start(3HA)

名称

scds_pmf_start, scds_pmf_start_env - 执行 PMF 控制下的程序

用法概要

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)

描述

scds_pmf_start() 函数可执行由 command 指定的受 PMF 控制的程序。此函数等同于带有 –c 选项的 pmfadm(1M) 命令。

command 参数包含命令行和传递给函数的命令行参数。

使用 scds_pmf_start () 启动 PMF 下的数据服务应用程序、监视器或其他进程(程序类型 SCDS_PMF_TYPE_SVCSCDS_PMF_TYPE_MONSCDS_PMF_TYPE_OTHER)时,通过使用 child_monitor_level 参数选择要监视的子进程级别。child_monitor_level 参数指定监视 child_monitor_level 级别以上或此级别的子进程。在级别 0 执行原始进程,在级别 1 执行其子进程,在级别 2 执行其子进程的子进程,依此类推。任何新派生操作都会产生新的子进程级别。指定 -1 以监视所有级别的子进程。

例如,如果要启动的命令是一个守护进程,则其相应的 child_monitor_level0。如果要启动的命令是一个启动守护进程的脚本,则 child_monitor_level 的相应值为 1

如果已运行底层应用程序进程,则 scds_pmf_start () 将显示syslog()错误并返回 SCHA_ERR_INTERNAL ,因为 RGM 保证对节点上的 START 函数的两个调用必需具有介入的 STOP 函数。

参数

支持以下参数:

handle

scds_initialize(3HA) 返回的句柄

program_type

要执行的程序类型。有效类型为:

SCDS_PMF_TYPE_SVC

数据服务应用程序

SCDS_PMF_TYPE_MON

故障监视器

SCDS_PMF_TYPE_OTHER

其他

instance

对于具有多个实例的资源,该从 0 开始的整数可以唯一标识实例。对于单实例资源,请使用 0。

command

要在 PMF 控制下执行的命令(包括命令行参数)。

child_monitor_level

指定要监视的子进程的级别(等同于 pmfadm–C 选项)。使用 -1 指定所有级别的子进程。

env

指定指向环境字符串的字符指针数组,execve(2) 手册页对此进行了说明。执行 command 参数指定的程序时,此环境将传递到此程序。

返回值

scds_pmf_start() 函数返回以下值:

0

该函数成功。

非零值

该函数失败。

错误

SCHA_ERR_INTERNAL

已运行底层应用程序进程。

SCHA_ERR_NOERR

该函数成功。

其他值

该函数失败。有关其他错误代码的描述,请参见 scha_calls(3HA)

文件

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

头文件

/usr/cluster/lib/libdsdev.so

属性

有关以下属性的描述,请参见 attributes(5)

属性类型
属性值
可用性
ha-cluster/developer/api
接口稳定性
Evolving(发展中)

另请参见

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