windows 是在发生错误(内存溢出等)时优雅地停止服务还是终止服务?
Does windows stop services gracefully or kills them when an error (memory overflow, etc) occurs?
首先抱歉我的英语不好。我真的不知道如何提出这个问题,但我可以向你解释我的意图,这样可以帮助你更好地理解我。
我正在开发一种工具,可以在 windows 服务出现故障时通知您。
我遵循的确切逻辑是:
- 当服务关闭时,会正常记录您可以在 windows 事件查看器中看到的事件。我创建了一个计划任务,当服务根据 windows 事件日志停止时将被触发(感谢 XML 过滤器)。
- 此任务会触发一个 powershell 脚本,该脚本会向电报机器人发送请求,该机器人会在服务终止时通知我。
当我手动停止服务(来自 service.msc 或 Powershell 的 Stop-Service)时,此过程完美运行。 objective 是为了实时跟踪服务,在这种情况下工作正常。
问题来了:我无法强制服务崩溃以查看它是否在 windows 事件查看器中记录信息。
我的问题是:
- 如果发生错误,windows 会正常关闭服务(比如使用 Stop-Service 时)还是会在不注册任何日志信息的情况下终止进程(比如使用 taskkill /f 时)?
- 还有其他建议吗?有没有另一种方法可以实时跟踪 windows 服务并触发脚本,而无需每隔一定时间运行一次循环。
希望大家理解我:)
如果服务崩溃,您应该仍会在 Windows 日志 > 系统 下的事件日志中看到一条错误消息。 来源 将是“服务控制管理器”,事件 ID 应该是 7031、7032 或 7034。
因此,您可以为这些事件添加一个过滤器,并让您的 PowerShell 脚本 运行 处理这些类型的事件。
首先抱歉我的英语不好。我真的不知道如何提出这个问题,但我可以向你解释我的意图,这样可以帮助你更好地理解我。
我正在开发一种工具,可以在 windows 服务出现故障时通知您。
我遵循的确切逻辑是:
- 当服务关闭时,会正常记录您可以在 windows 事件查看器中看到的事件。我创建了一个计划任务,当服务根据 windows 事件日志停止时将被触发(感谢 XML 过滤器)。
- 此任务会触发一个 powershell 脚本,该脚本会向电报机器人发送请求,该机器人会在服务终止时通知我。
当我手动停止服务(来自 service.msc 或 Powershell 的 Stop-Service)时,此过程完美运行。 objective 是为了实时跟踪服务,在这种情况下工作正常。
问题来了:我无法强制服务崩溃以查看它是否在 windows 事件查看器中记录信息。
我的问题是:
- 如果发生错误,windows 会正常关闭服务(比如使用 Stop-Service 时)还是会在不注册任何日志信息的情况下终止进程(比如使用 taskkill /f 时)?
- 还有其他建议吗?有没有另一种方法可以实时跟踪 windows 服务并触发脚本,而无需每隔一定时间运行一次循环。
希望大家理解我:)
如果服务崩溃,您应该仍会在 Windows 日志 > 系统 下的事件日志中看到一条错误消息。 来源 将是“服务控制管理器”,事件 ID 应该是 7031、7032 或 7034。
因此,您可以为这些事件添加一个过滤器,并让您的 PowerShell 脚本 运行 处理这些类型的事件。