2024年PHP开发者大会(日本)

win32_query_service_status

(PECL win32service >=0.1.0)

win32_query_service_status查询服务的狀態

描述

win32_query_service_status(字符串 $servicename, 字符串 $machine = null): 数组

查询服务的当前状态,返回一个包含信息的数组。

参数

servicename

服务的短名称。

machine

可选的机器名。如果省略,则使用本地机器。

返回值

成功时返回包含以下信息的数组

1.0.0之前的版本,如果参数有问题或失败时返回 Win32错误代码则返回false

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 返回类型现在是数组,之前是混合类型

添加注释

用户贡献的注释 1 条注释

2
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