【发布时间】:2021-09-18 01:55:30
【问题描述】:
首先对我糟糕的英语感到抱歉。我真的不知道如何提出这个问题,但我可以向您解释我的意图,以便您更好地理解我。
我正在开发当 Windows 服务出现故障时通知您的工具。
我遵循的确切逻辑是:
- 当服务关闭时,会优雅地记录您可以在 Windows 事件查看器中看到的事件。我创建了一个计划任务,当服务根据 Windows 事件日志停止时将触发该任务(感谢 XML 过滤器)。
- 此任务会触发一个 powershell 脚本,该脚本会向电报机器人发送请求,该机器人将在服务终止时通知我。
当我手动停止服务(来自 service.msc 或 Powershell 的 Stop-Service)时,此过程完美运行。目标是实时跟踪服务,并在这种情况下正常工作。
问题来了:我不能强制服务崩溃以查看它是否在 Windows 事件查看器中记录信息。
我的问题是:
- 如果发生错误,Windows 会优雅地关闭服务(如使用 Stop-Service 时)还是会在不注册任何日志信息的情况下终止进程(如使用 taskkill /f 时)?
- 还有其他建议吗?是否有另一种方法可以实时跟踪 Windows 服务并触发脚本,而无需每隔一定时间运行一次循环。
希望你们能理解我:)
【问题讨论】:
标签: windows logging events service task