0

一些 Windows 服务只有在重新启动电脑后才会启动,而有些服务则在安装软件后立即启动。

例如 sql server(instance name) 将在安装后立即启动。其他一些服务需要重新启动。重新启动该计算机后,它将开始出现在 services.msc 中。它是通过使用注册表完成的吗?我有一个与服务注册相关的链接。但我无法追踪是哪一个?是注册表还是其他?(设置服务为手动或自动是不同的,我的问题是关于第一次安装软件时添加的服务)

4

1 回答 1

0

您不应该直接操纵注册表来创建服务。您应该使用服务控制管理器 API 来创建并在需要时启动服务。注册表值已记录在案,但它们仍然是 API 专用的,并且仅在重新启动时生效。使用 API 将立即生效,注册表更改由 API 完成。

如果您使用的是 Windows Installer,您可以使用 Windows Installer 的 ServiceInstall 和 ServiceControl 表让安装程序为您处理所有这些。

某些服务依赖于在重新启动后才可用的资源。一个示例可能是一个锁定文件,该文件将在启动期间通过 Pending Files Rename Operations 模式被覆盖。另一个问题是服务是否依赖于系统环境变量。更新注册表以设置环境后,您应该向广播地址发送一条消息,通知所有进程设置更改。不幸的是,服务控制管理器忽略了这些消息,因此需要重新启动才能赶上。

其他示例将视具体情况而定。

于 2013-08-27T13:02:32.163 回答