Windows services 何时将服务标记为不可停止?

Windows services 何时将服务标记为不可停止?,windows-services,Windows Services,服务可以标记为“不可停止”: 在C/C++中,通过在调用时指定SERVICE\u ACCEPT\u STOP标志(有关详细信息,请参阅) 如果.NET,则设置为false 然而,这是否良好的做法?这意味着即使是具有管理员权限的用户也无法以干净的方式停止此类服务。(仍然可以终止它,但这会妨碍正确的清理。如果有其他服务在同一进程中运行,它们也会被终止。) 在我的特殊情况下,我有一个控制科学仪器的服务。建议在从仪器获取数据时,不要停止服务,以防止丢失所获取的数据。我要补充一点: 我们授予非管理员

服务可以标记为“不可停止”:

  • 在C/C++中,通过在调用时指定
    SERVICE\u ACCEPT\u STOP
    标志(有关详细信息,请参阅)

  • 如果.NET,则设置为
    false

然而,这是否良好的做法?这意味着即使是具有管理员权限的用户也无法以干净的方式停止此类服务。(仍然可以终止它,但这会妨碍正确的清理。如果有其他服务在同一进程中运行,它们也会被终止。)

在我的特殊情况下,我有一个控制科学仪器的服务。建议在从仪器获取数据时,不要停止服务,以防止丢失所获取的数据。我要补充一点:

  • 我们授予非管理员用户启动/停止服务的权利
  • 我们有一个程序,提供一个UI来启动/停止此服务。如果用户试图在采集期间停止服务,该程序将发出警告。但是,当然也可以使用
    SC.EXE
    或“服务”管理单元停止is。在这种情况下,没有任何警告

微软(或其他任何人)提供指导吗?

到目前为止,我自己的立场是,标记服务不可停止是一种极端的措施,应该谨慎使用。可接受的用途是:

  • 在短时间内,保护不应中断的关键操作
  • 对于对操作系统的操作或安全至关重要的服务
我的例子不属于这些标准,因此应该可以停止