PHP 8.3.4 Released!

win32_query_service_status

(PECL win32service >=0.1.0)

win32_query_service_statusサービスの状態を問い合わせる

説明

win32_query_service_status(string $servicename, string $machine = ?): array

サービスの稼動状況を問い合わせ、情報を配列で返します。

パラメータ

servicename

サービスの短い名前。

machine

オプションのマシン名。指定しなかった場合、ローカルマシンが使用されます。

戻り値

成功した場合に以下の情報を含む配列を返します。

バージョン 1.0.0 より前では、パラメータに問題がある場合は false、失敗した場合は Win32 エラーコード を返します。

ServiceType

dwServiceType Win32Service サービス型のビットマスク を参照ください。

CurrentState

dwCurrentState Win32Service サービスステータス定数 を参照ください。

ControlsAccepted

サービスが許可しているコントロール。 Win32Service サービス制御メッセージが受領されたときのビットマスク を参照ください。

Win32ExitCode

サービスが終了した際にプロセスが返すコード。 この値は終了モードがgracefulでなかった場合、 WIN32_ERROR_SERVICE_SPECIFIC_ERROR と同じです。 Win32Service エラーコード および win32_set_service_exit_mode() も参照ください。

ServiceSpecificExitCode

サービスが異常終了した際にイベントログに記録されるコード。 この値は win32_set_service_exit_code() で定義された値と同じです。

CheckPoint

サービスが終了する際に、現在のチェックポイント番号を保持します。 SCM はこれをいわゆる心拍のように扱い、反応しなくなったサービスを 検出するために使用します。この値は、WaitHint の値と組み合わせて 用いられます。

WaitHint

サービスが終了する際に、WaitHint を checkpoint の値に設定します。 この処理が終了した時点でサービスの終了処理が 100% 完了したことを示します。 これは、進捗状況のインジケータを実装する際に使用します。

ProcessId

Windows のプロセス ID 。0 の場合、プロセスは実行していません。

ServiceFlags

dwServiceFlags Win32Service サービスフラグ定数 を参照ください。

エラー / 例外

servicename 引数が空の場合、 ValueError がスローされます。

変更履歴

バージョン 説明
PECL win32service 1.0.0 引数に不正な値があった場合、 ValueError をスローするようになりました。 これより前のバージョンでは、false を返していました。
PECL win32service 1.0.0 エラー時に Win32ServiceException をスローするようになりました。 これより前のバージョンでは、 Win32 エラーコード を返していました。
PECL win32service 1.0.0 戻り値の型が array になりました。 これより前のバージョンでは、mixed でした。

add a note

User Contributed Notes 1 note

up
2
demers dot alex at gmail dot com
14 years ago
This function will return an array containing the above information as a return value, but if this fails it will return an integer which is a System Error Code. All the System Error Codes can be found here:

http://msdn.microsoft.com/en-us/library/ms681381%28VS.85%29.aspx

In my case, it returned 5, in which I immediately knew why and fixed the issue right away.

In the case of mnemotronic at netscape dot net, here in the documentation notes, it returned 1060 which is:

ERROR_SERVICE_DOES_NOT_EXIST
1060 (0x424)
The specified service does not exist as an installed service.

Again, it should not return FALSE, instead an System Error Code for Windows.
To Top