安排一个服务接一个服务启动

Nob*_*ody 5 windows services iis scheduled-tasks

我有一个服务需要在另一个服务之后启动。有没有办法将服务配置为仅在另一个服务完成启动后启动?

显然,我可以使用延迟启动或编写批处理脚本来执行此操作,但它们都是混乱/临时解决方案。所以我想知道我是否可以安排这种情况发生?

可以做到吗?

Cod*_*lla 5

您必须使用注册表编辑器(据我所知)使服务依赖于其他服务器。在 中找到依赖服务HKLM\SYSTEM\CurrentControlSet\services,并添加一个REG_MULTI_SZ名为的值DependOnService。将服务名称(不是显示名称,而是与其注册键相同的名称)作为值。

当您现在重新启动时,Windows 只会在您让它依赖的服务启动后才启动您的依赖服务。同样,如果它依赖的服务启动失败,你的依赖服务也不会启动。


Tra*_*Guy 5

以我的经验,创建服务依赖项的最佳方法,而不是在注册表中翻找(不安全、不安全或易于编写脚本 == 可重复的东西)是使用 SC.exe - 随每个 Windows 版本打包的服务控制实用程序,因为赢2003。

您可以打开命令窗口并键入sc以获取完整帮助,但其要点是:

sc create newservice binpath= c:\nt\system32\newserv.exe type= own start= auto depend= "netbios"
Run Code Online (Sandbox Code Playgroud)

创建一个名为“newservice”的新服务,指向它的路径,使其自动启动并使其依赖于 NetBIOS 服务。

在此处阅读有关 SC 的更多信息。