服务可以标记为“不可停止”:
在C / C ++中,通过在调用SetServiceStatus时指定SERVICE_ACCEPT_STOP
标志(有关详细信息,请参阅SERVICE_STATUS)。
如果是.NET,请将ServiceBase.CanStop设置为false
。
然而,这是一个好习惯吗?这意味着即使具有管理员权限的用户也无法以干净的方式停止此类服务。 (它仍然可以杀死它,但这会阻止正确的清理。如果在同一进程中运行其他服务,它们也会被杀死。)
在我的具体案例中,我有一项控制科学仪器的服务。有人建议在从仪器获取数据时使服务不可停止,以防止丢失所获取的数据。我应该补充一点:
SC.EXE
或“服务”管理单元停止。在这种情况下,没有警告。Microsoft(或其他任何人)是否提供指导?
答案 0 :(得分:0)
到目前为止,我自己的立场是,标记服务不可停止是一项应该谨慎使用的严厉措施。可接受的用途是:
我的例子不符合这些标准,所以应该是可以停止的