win32_start_service_ctrl_dispatcher
スクリプトを SCM に登録し、指定した名前でサービスとして稼動させる
ようにする
&reftitle.description;
voidwin32_start_service_ctrl_dispatcher
stringname
boolgracefulModetrue
サービスコントロールマネージャ経由で起動させる際、サービスプロセスは
「チェックイン」を要求され、これによってサービスのモニタリングや
通信の機能を確立します。この関数は、サービスコントロールマネージャとの
低レベル通信を処理するスレッドを生成し、チェックインを実行します。
サービスが開始したら、サービスプロセスで行わなければならないことは次のふたつです。
まず最初は、サービスが実行中であることをサービスコントロールマネージャに通知することです。
これは、win32_set_service_status に定数
WIN32_SERVICE_RUNNING を指定してコールすれば実現できます。
サービスが実際に動き出すまでに何らかの長い処理を要する場合は、定数
WIN32_SERVICE_START_PENDING を使うこともできます。
もうひとつは、常にサービスコントロールマネージャにチェックインし続け、
サービスをいつ終了させるべきかを確認することです。
これは、定期的に win32_get_last_control_message
をコールして戻り値を適切に処理することで実現できます。
0.2.0 以降では、この関数は "cli" SAPI でのみ動作します。
他の SAPI では、この関数は無効になっています。
&reftitle.parameters;
name
サービスの短い名前。win32_create_service
で登録されたもの。
gracefulMode
&true; の場合、graceful に終了します。
&false; の場合、エラーで終了します。
詳細は win32_set_service_exit_mode を参照ください。
&reftitle.returnvalues;
&return.void;
バージョン 1.0.0 より前では、&win32service.noerror.false.error;
&reftitle.errors;
バージョン 1.0.0 より前では、
SAPI が "cli" でない場合、
この関数は E_ERROR レベルのエラーを発生させていました。
バージョン 1.0.0 以降では、
SAPI が "cli" でない場合、
Win32ServiceException がスローされます。
&reftitle.changelog;
&Version;
&Description;
PECL win32service 1.0.0
引数に不正な値があった場合、
ValueError をスローするようになりました。
これより前のバージョンでは、&false; を返していました。
PECL win32service 1.0.0
エラー時に
Win32ServiceException をスローするようになりました。
これより前のバージョンでは、
Win32 エラーコード を返していました。
PECL win32service 1.0.0
戻り値の型が void になりました。
これより前のバージョンでは、mixed でした。
PECL win32service 0.4.0
gracefulMode パラメータが追加されました。
PECL win32service 0.2.0
この関数は "cli" SAPI でのみ動作するようになりました。
&reftitle.examples;
win32_start_service_ctrl_dispatcher の例
サービスが SCM で実行されているかどうかを調べます。
]]>
&reftitle.seealso;
win32_set_service_status
win32_get_last_control_message
win32_set_service_exit_mode
win32_set_service_exit_code
Win32 エラーコード