Oracle Solaris Cluster リファレンスマニュアル

印刷ビューの終了

更新: 2015 年 9 月
 
 

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() 関数は、PMF 制御下で、command によって指定されたプログラムを実行します。この関数は、–c オプションを指定した pmfadm(1M) コマンドと同じです。

command 引数には、関数に渡されるコマンド行とコマンド行引数が含まれます。

scds_pmf_start () を使って、データサービスアプリケーションやその他のプロセス (プログラム型 SCDS_PMF_TYPE_SVCSCDS_PMF_TYPE_MON または SCDS_PMF_TYPE_OTHER) を PMF 制御下で起動するとき 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 を返します。これは、単一ノード上で START 関数が 2 回 呼び出された場合、RGM が間に 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

関数の実行に成功。

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
インタフェースの安定性
発展中

関連項目

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