确定 运行 Windows 服务是否正常运行

Determine if a running Windows Service is functioning

我们大多数人都遇到过状态为“运行”的 Windows 服务,但它没有按预期运行,我们经常重新启动该服务。我想知道是否有办法确定 Windows 服务是否“正常运行”?我不是说它“停止”了,我的意思是我怎么知道它正在做它在“运行”状态下应该做的事情?

我在下面发现了这些以前的问题,但这些问题是针对开发的 Windows 服务而不是第三方 Windows 安装有软件应用程序或核心的服务 Windows Role\Feature 服务。我知道日志可能会说“服务已进入停止状态”,但如果它没有“停止”但也没有运行,我有什么办法可以告诉我吗?

How can I verify if a Windows Service is running

How do i know if my windows service is working?

SERVICE_CONTROL_INTERROGATEControlService 发送到服务应强制服务控制处理程序处理事件。如果服务控制处理程序线程被阻塞,这将失败。

除此之外,我不知道是否有通用方法来确定服务是否正常运行。

如果您正在查看特定的已知服务,您可以尝试它正在侦听的任何 TCP 端口或它创建的命名管道。例如,Web 服务器应该响应 / 的 HEAD 请求。