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

如果服务退出,则为进程的返回值。如果退出模式不是正常退出,此值等于 WIN32_ERROR_SERVICE_SPECIFIC_ERROR。请参见 Win32Service 错误代码win32_set_service_exit_mode()

ServiceSpecificExitCode

如果服务退出并出现错误条件,则此处将显示记录在事件日志中的服务特定代码。此值等于由 win32_set_service_exit_code() 定义的值。

CheckPoint

如果服务正在关闭,则保存当前检查点号。SCM 使用此作为一种心跳来检测卡住的服务进程。检查点的值最好与 WaitHint 值一起解释。

WaitHint

如果服务正在关闭,它将设置 WaitHint 为一个检查点值,该值将指示 100% 完成。这可用于实现进度指示器。

ProcessId

Windows 进程标识符。如果为 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

添加备注

用户贡献的备注 1 则备注

demers dot alex at gmail dot com
15 年前
此函数将返回一个包含上述信息的数组作为返回值,但如果失败,它将返回一个整数,该整数是系统错误代码。所有系统错误代码都可以在这里找到

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

在我的情况下,它返回 5,我立即知道原因并立即解决了问题。

在 mnemotronic at netscape dot net 的情况下,这里在文档备注中,它返回了 1060,即

ERROR_SERVICE_DOES_NOT_EXIST
1060 (0x424)
指定的服務不存在作為安裝服務。

再说一次,它不应该返回 FALSE,而应该返回 Windows 的系统错误代码。
To Top