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; <function>win32_start_service_ctrl_dispatcher</function> の例 サービスが SCM で実行されているかどうかを調べます。 ]]> &reftitle.seealso; win32_set_service_status win32_get_last_control_message win32_set_service_exit_mode win32_set_service_exit_code Win32 エラーコード