(PECL win32service SVN)
win32_query_service_status — Queries the status of a service
Queries the current status for a service, returning an array of information.
servicename
The short name of the service.
machine
The optional machine name. If omitted, the local machine will be used.
Returns an array consisting of the following information on success,参数错误时返回 FALSE
,或失败时返回一个 Win32 错误码。
ServiceType
The dwServiceType. See Win32Service Service Type Bitmasks.
CurrentState
The dwCurrentState. See Win32Service Service Status Constants.
ControlsAccepted
Which service controls are accepted by the service. See Win32Service Service Control Message Accepted Bitmasks.
Win32ExitCode
If the service exited, the return code from the process.
ServiceSpecificExitCode
If the service exited with an error condition, the service specific code that is logged in the event log is visible here.
CheckPoint
If the service is shutting down, holds the current check point number. This is used by the SCM as a kind of heart-beat to detect a wedged service process. The value of the check point is best interpreted in conjunction with the WaitHint value.
WaitHint
If the service is shutting down it will set WaitHint to a checkpoint value that will indicate 100% completion. This can be used to implement a progress indicator.
ProcessId
The Windows process identifier. If 0, the process is not running.
ServiceFlags
The dwServiceFlags. See Win32Service Service Service Flag Constants.
demers dot alex at gmail dot com (2009-07-21 08:39:47)
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.
CM at chaosmixed dot com (2009-06-16 10:29:37)
***Notice the name is IISADMIN and not IIS Admin
right click the serivce then, type in the "Service Name" not the "Display Name" or you will get 1060
<?php
$servicename ="IISADMIN";
$machine ="desktopper";
//print_r (win32_query_Service_status($servicename,$machine));
echo $servicename;
$sray = win32_query_Service_status($servicename,$machine);
echo "<br>";
print_r ($sray);
echo "<ul>";
echo "<li>Service Type: " .$sray[ServiceType] . "</li>";
echo "<li>CurrentState: " .$sray[CurrentState] . "</li>";
echo "<li>Controls Accpeted: " .$sray[ControlsAccepted] . "</li>";
echo "<li>Win32 Exit Code: " .$sray[Win32ExitCode] . "</li>";
echo "<li>Service Specific Exit Code: " .$sray[ServiceSpecificExitCode] . "</li>";
echo "<li>Check Point: " .$sray[CheckPoint] . "</li>";
echo "<li>Wait Hint: " .$sray[WaitHint] . "</li>";
echo "<li>Process Id: " .$sray[ProcessId] . "</li>";
echo "<li>Service Flags: " .$sray[ServiceFlags] . "</li>";
?>
mnemotronic at netscape dot net (2006-10-25 07:30:24)
If the service specified is non-existant, "win32_query_service_status" seems to return an integer, not the expected FALSE value:
<?php
$svcStatus=win32_query_service_status ('_bogons_');
echo $svcStatus ;
?>
prints 1060
-- This is for xampp PHP; v5.1.6