Windows服务器中服务的启动顺序是什么

Windows服务器中服务的启动顺序是什么

我有一个 Windows 服务,它在大多数服务器上运行良好。但在一台服务器上,我发现它在网络服务启动之前启动。这导致服务挂起,操作系统无法启动。它也会卡住。服务的通常启动顺序是什么?我的 Windows 服务确实会建立 TCP 连接。我应该添加延迟启动吗?如果是这样,所有服务是否都应该在这些网络服务之后延迟启动?任何帮助都将不胜感激。

答案1

使用延迟启动可能是一个可能的解决方案。

另一种可能性是添加依赖项,以便服务按您想要的顺序启动。例如,您不希望您的服务在 NSI 服务之前启动,因为在 NSI 服务运行之前无法建立网络连接。因此,请添加依赖项。

微软

如果自动启动服务依赖于按需启动服务,则按需启动服务也会自动启动。

(有关启动顺序的更多详细信息也位于该 MSDN 文章中。)

这两种方法都可能有效,但如果我是你,我会更有兴趣弄清楚这台服务器有什么不同。在修改系统设置并使这台服务器与其他服务器相比成为“特殊”服务器之前,最好始终充分了解发生了什么以及为什么会发生。

编辑

你让我更多地思考这个问题,“Windows 中服务的启动顺序是什么”,我的意思是,精确的而且我认为这个问题还没有得到彻底的解答,至少没有公开地解答过。

我认为部分原因是非常很复杂。Windows 服务的确切启动顺序总是在变化。有“早期启动服务”、“第 1 阶段服务”、“第 2 阶段服务”、服务组、由于依赖关系而启动的服务等。每个版本的 Windows 都会略有不同,并且也会因不同的配置和部署选项而异。因此,除了最通用的相对术语(例如“延迟启动服务在自动启动服务之后启动”)之外,不要指望它能以任何其他形式正式记录下来。

我认为部分原因还在于这是一种不确定的情况。服务控制管理器(用户模式下的 services.exe)向服务发送启动信号,该部分的顺序非常确定,但发送启动信号的时间和服务实际启动的时间是两码事。由于 Windows 的抢占特性,即使 SCM 首先向服务 A 发送启动控制,我们也无法始终保证服务 A 会在服务 B 之前启动。(除非我们使用某种同步机制。)

无论如何,我想我至少可以在启动期间启用一些 SCM 日志记录,并按时间顺序查看 SCM 启动所有服务。

这是 Windows 10,RS1/1607。正如我之前提到的,您的结果在任何其他版本上都会略有不同。结果已根据长度和内容进行了编辑。首先,我认为最有趣的是显示服务进入运行状态的时间顺序,而不一定是 SCM 尝试启动它们的顺序。

07/06/17-13:05:39.7425860 [SCM] service PlugPlay, state 0x00000004(SERVICE_RUNNING), exit 0, sexit 0, controls 0x00000005
07/06/17-13:05:39.8150411 [SCM] service Power, state 0x00000004(SERVICE_RUNNING), exit 0, sexit 0, controls 0x00000000
07/06/17-13:05:39.8629388 [SCM] service DcomLaunch, state 0x00000004(SERVICE_RUNNING), exit 0, sexit 0, controls 0x00000080
07/06/17-13:05:39.8699565 [SCM] service RpcEptMapper, state 0x00000004(SERVICE_RUNNING), exit 0, sexit 0, controls 0x00000000
07/06/17-13:05:39.8745944 [SCM] service RpcSs, state 0x00000004(SERVICE_RUNNING), exit 0, sexit 0, controls 0x000000c0
07/06/17-13:05:39.9107503 [SCM] service BrokerInfrastructure, state 0x00000004(SERVICE_RUNNING), exit 0, sexit 0, controls 0x00001080
07/06/17-13:05:39.9276072 [SCM] service LSM, state 0x00000004(SERVICE_RUNNING), exit 0, sexit 0, controls 0x00000000
07/06/17-13:05:40.0868049 [SCM] service SystemEventsBroker, state 0x00000004(SERVICE_RUNNING), exit 0, sexit 0, controls 0x000012c1
07/06/17-13:05:40.4599977 [SCM] service nsi, state 0x00000004(SERVICE_RUNNING), exit 0, sexit 0, controls 0x00000001
07/06/17-13:05:40.4641823 [SCM] service lmhosts, state 0x00000004(SERVICE_RUNNING), exit 0, sexit 0, controls 0x00000001
07/06/17-13:05:40.4705790 [SCM] service TermService, state 0x00000004(SERVICE_RUNNING), exit 0, sexit 0, controls 0x00000005
07/06/17-13:05:40.4708935 [SCM] service CoreMessagingRegistrar, state 0x00000004(SERVICE_RUNNING), exit 0, sexit 0, controls 0x00000000
07/06/17-13:05:40.4943177 [SCM] service gpsvc, state 0x00000004(SERVICE_RUNNING), exit 0, sexit 0, controls 0x00000141
07/06/17-13:05:40.4975091 [SCM] service gpsvc, state 0x00000004(SERVICE_RUNNING), exit 0, sexit 0, controls 0x00000541
07/06/17-13:05:40.5067210 [SCM] service TimeBrokerSvc, state 0x00000004(SERVICE_RUNNING), exit 0, sexit 0, controls 0x00000241
07/06/17-13:05:40.5877317 [SCM] service UmRdpService, state 0x00000004(SERVICE_RUNNING), exit 0, sexit 0, controls 0x00000085
07/06/17-13:05:40.6327091 [SCM] service Dnscache, state 0x00000004(SERVICE_RUNNING), exit 0, sexit 0, controls 0x00000059
07/06/17-13:05:40.6501216 [SCM] service CertPropSvc, state 0x00000004(SERVICE_RUNNING), exit 0, sexit 0, controls 0x00000085
07/06/17-13:05:40.6716164 [SCM] service Dhcp, state 0x00000004(SERVICE_RUNNING), exit 0, sexit 0, controls 0x00000005
07/06/17-13:05:40.6785583 [SCM] service Schedule, state 0x00000004(SERVICE_RUNNING), exit 0, sexit 0, controls 0x000012c5
07/06/17-13:05:40.7442193 [SCM] service LanmanWorkstation, state 0x00000004(SERVICE_RUNNING), exit 0, sexit 0, controls 0x00000043
07/06/17-13:05:40.7560620 [SCM] service EventLog, state 0x00000004(SERVICE_RUNNING), exit 0, sexit 0, controls 0x00000205
07/06/17-13:05:40.8915301 [SCM] service SessionEnv, state 0x00000004(SERVICE_RUNNING), exit 0, sexit 0, controls 0x00000281
07/06/17-13:05:40.9149615 [SCM] service ProfSvc, state 0x00000004(SERVICE_RUNNING), exit 0, sexit 0, controls 0x00000005
07/06/17-13:05:40.9173657 [SCM] service NlaSvc, state 0x00000004(SERVICE_RUNNING), exit 0, sexit 0, controls 0x000000c1
07/06/17-13:05:40.9429894 [SCM] service netprofm, state 0x00000004(SERVICE_RUNNING), exit 0, sexit 0, controls 0x000000c1
07/06/17-13:05:40.9494092 [SCM] service UserManager, state 0x00000004(SERVICE_RUNNING), exit 0, sexit 0, controls 0x00000001
07/06/17-13:05:41.0502482 [SCM] service NcbService, state 0x00000004(SERVICE_RUNNING), exit 0, sexit 0, controls 0x00000081
07/06/17-13:05:41.2351873 [SCM] service vmickvpexchange, state 0x00000004(SERVICE_RUNNING), exit 0, sexit 0, controls 0x00000003
07/06/17-13:05:41.2897569 [SCM] service vmictimesync, state 0x00000004(SERVICE_RUNNING), exit 0, sexit 0, controls 0x00000003
07/06/17-13:05:41.3259511 [SCM] service vmicshutdown, state 0x00000004(SERVICE_RUNNING), exit 0, sexit 0, controls 0x00000003
07/06/17-13:05:41.3284648 [SCM] service vmicvss, state 0x00000004(SERVICE_RUNNING), exit 0, sexit 0, controls 0x00000103
07/06/17-13:05:41.3444338 [SCM] service Themes, state 0x00000004(SERVICE_RUNNING), exit 0, sexit 0, controls 0x00000001
07/06/17-13:05:41.3548424 [SCM] service vmicrdv, state 0x00000004(SERVICE_RUNNING), exit 0, sexit 0, controls 0x00000003
07/06/17-13:05:41.3823139 [SCM] service WPDBusEnum, state 0x00000004(SERVICE_RUNNING), exit 0, sexit 0, controls 0x000004c1
07/06/17-13:05:41.3843401 [SCM] service WinHttpAutoProxySvc, state 0x00000004(SERVICE_RUNNING), exit 0, sexit 0, controls 0x00000041
07/06/17-13:05:41.3856439 [SCM] service vmicheartbeat, state 0x00000004(SERVICE_RUNNING), exit 0, sexit 0, controls 0x00000003
07/06/17-13:05:41.3874138 [SCM] service EventSystem, state 0x00000004(SERVICE_RUNNING), exit 0, sexit 0, controls 0x00000001
07/06/17-13:05:41.5580789 [SCM] service SENS, state 0x00000004(SERVICE_RUNNING), exit 0, sexit 0, controls 0x00000041
07/06/17-13:05:41.6772846 [SCM] service FontCache, state 0x00000004(SERVICE_RUNNING), exit 0, sexit 0, controls 0x00000005
07/06/17-13:05:41.9209576 [SCM] service AudioEndpointBuilder, state 0x00000004(SERVICE_RUNNING), exit 0, sexit 0, controls 0x000000c1
07/06/17-13:05:42.0189267 [SCM] service VSS, state 0x00000004(SERVICE_RUNNING), exit 0, sexit 0, controls 0x00000005
07/06/17-13:05:42.0210403 [SCM] service Audiosrv, state 0x00000004(SERVICE_RUNNING), exit 0, sexit 0, controls 0x000000c1
07/06/17-13:05:42.0484759 [SCM] service SamSs, state 0x00000004(SERVICE_RUNNING), exit 0, sexit 0, controls 0x00000000
07/06/17-13:05:42.2429764 [SCM] service Wcmsvc, state 0x00000004(SERVICE_RUNNING), exit 0, sexit 0, controls 0x000012c5
07/06/17-13:05:42.2906325 [SCM] service ShellHWDetection, state 0x00000004(SERVICE_RUNNING), exit 0, sexit 0, controls 0x000000c1
07/06/17-13:05:42.5323497 [SCM] service Spooler, state 0x00000004(SERVICE_RUNNING), exit 0, sexit 0, controls 0x000004c1
07/06/17-13:05:42.5431893 [SCM] service ScDeviceEnum, state 0x00000004(SERVICE_RUNNING), exit 0, sexit 0, controls 0x00000481
07/06/17-13:05:42.5485449 [SCM] service wudfsvc, state 0x00000004(SERVICE_RUNNING), exit 0, sexit 0, controls 0x00000000
07/06/17-13:05:42.5989161 [SCM] service NetSetupSvc, state 0x00000004(SERVICE_RUNNING), exit 0, sexit 0, controls 0x00000001
07/06/17-13:05:42.6021970 [SCM] service WbioSrvc, state 0x00000004(SERVICE_RUNNING), exit 0, sexit 0, controls 0x00000441
07/06/17-13:05:42.6391087 [SCM] service SCardSvr, state 0x00000004(SERVICE_RUNNING), exit 0, sexit 0, controls 0x00000481
07/06/17-13:05:42.7007534 [SCM] service NgcCtnrSvc, state 0x00000004(SERVICE_RUNNING), exit 0, sexit 0, controls 0x00000001
07/06/17-13:05:42.7017472 [SCM] service BFE, state 0x00000004(SERVICE_RUNNING), exit 0, sexit 0, controls 0x00000041
07/06/17-13:05:42.7098576 [SCM] service Winmgmt, state 0x00000004(SERVICE_RUNNING), exit 0, sexit 0, controls 0x00000007
07/06/17-13:05:42.7222523 [SCM] service Netlogon, state 0x00000004(SERVICE_RUNNING), exit 0, sexit 0, controls 0x00000003
07/06/17-13:05:42.8153049 [SCM] service iphlpsvc, state 0x00000004(SERVICE_RUNNING), exit 0, sexit 0, controls 0x000000c9
07/06/17-13:05:42.8854162 [SCM] service CryptSvc, state 0x00000004(SERVICE_RUNNING), exit 0, sexit 0, controls 0x00000085
07/06/17-13:05:42.8857247 [SCM] service DPS, state 0x00000004(SERVICE_RUNNING), exit 0, sexit 0, controls 0x00000005
07/06/17-13:05:43.0717978 [SCM] service LanmanServer, state 0x00000004(SERVICE_RUNNING), exit 0, sexit 0, controls 0x00000001
07/06/17-13:05:44.1651270 [SCM] service PcaSvc, state 0x00000004(SERVICE_RUNNING), exit 0, sexit 0, controls 0x00000085
07/06/17-13:05:44.3247890 [SCM] service TrkWks, state 0x00000004(SERVICE_RUNNING), exit 0, sexit 0, controls 0x00000005
07/06/17-13:05:44.3303880 [SCM] service DiagTrack, state 0x00000004(SERVICE_RUNNING), exit 0, sexit 0, controls 0x000013c5
07/06/17-13:05:44.3364873 [SCM] service MpsSvc, state 0x00000004(SERVICE_RUNNING), exit 0, sexit 0, controls 0x00000001
07/06/17-13:05:44.3497466 [SCM] service SysMain, state 0x00000004(SERVICE_RUNNING), exit 0, sexit 0, controls 0x000000c5
07/06/17-13:05:44.3573408 [SCM] service WpnService, state 0x00000004(SERVICE_RUNNING), exit 0, sexit 0, controls 0x00000401
07/06/17-13:05:44.3581205 [SCM] service WdiServiceHost, state 0x00000004(SERVICE_RUNNING), exit 0, sexit 0, controls 0x00000005
07/06/17-13:05:44.7769374 [SCM] service sppsvc, state 0x00000004(SERVICE_RUNNING), exit 0, sexit 0, controls 0x00000005
07/06/17-13:05:45.1100224 [SCM] service wisvc, state 0x00000004(SERVICE_RUNNING), exit 0, sexit 0, controls 0x00000005
07/06/17-13:05:45.2168257 [SCM] service fhsvc, state 0x00000004(SERVICE_RUNNING), exit 0, sexit 0, controls 0x000004c5
07/06/17-13:05:45.2489211 [SCM] service WinDefend, state 0x00000004(SERVICE_RUNNING), exit 0, sexit 0, controls 0x000000c5
07/06/17-13:05:45.3731715 [SCM] service wuauserv, state 0x00000004(SERVICE_RUNNING), exit 0, sexit 0, controls 0x000000c5
07/06/17-13:05:45.3899756 [SCM] service WinHttpAutoProxySvc, state 0x00000004(SERVICE_RUNNING), exit 0, sexit 0, controls 0x00000041
07/06/17-13:05:45.3958062 [SCM] service StateRepository, state 0x00000004(SERVICE_RUNNING), exit 0, sexit 0, controls 0x0000000d
07/06/17-13:05:45.6152215 [SCM] service tiledatamodelsvc, state 0x00000004(SERVICE_RUNNING), exit 0, sexit 0, controls 0x00000181
07/06/17-13:05:47.3504859 [SCM] service SCardSvr, state 0x00000004(SERVICE_RUNNING), exit 0, sexit 0, controls 0x00000481
07/06/17-13:05:47.5248612 [SCM] service WdNisSvc, state 0x00000004(SERVICE_RUNNING), exit 0, sexit 0, controls 0x00000001
07/06/17-13:05:47.9543134 [SCM] service SCardSvr, state 0x00000004(SERVICE_RUNNING), exit 0, sexit 0, controls 0x00000481
07/06/17-13:05:47.9543975 [SCM] service SCardSvr, state 0x00000004(SERVICE_RUNNING), exit 0, sexit 0, controls 0x00000481
07/06/17-13:05:48.5741736 [SCM] service CDPUserSvc_33f2e, state 0x00000004(SERVICE_RUNNING), exit 0, sexit 0, controls 0x000000c1
07/06/17-13:05:50.7171925 [SCM] service W32Time, state 0x00000004(SERVICE_RUNNING), exit 0, sexit 0, controls 0x0000007d
07/06/17-13:05:51.0991216 [SCM] service wlidsvc, state 0x00000004(SERVICE_RUNNING), exit 0, sexit 0, controls 0x00000081
07/06/17-13:05:51.2245142 [SCM] service KeyIso, state 0x00000004(SERVICE_RUNNING), exit 0, sexit 0, controls 0x00000001
07/06/17-13:05:51.4173887 [SCM] service WSearch, state 0x00000004(SERVICE_RUNNING), exit 0, sexit 0, controls 0x000010c5
07/06/17-13:05:52.7271615 [SCM] service Appinfo, state 0x00000004(SERVICE_RUNNING), exit 0, sexit 0, controls 0x00000081

接下来,我们按时间顺序列出了 SCM 向其发送启动控制的 Windows 服务。请注意,此列表较短。并且可能并不总是按相同的顺序排列。

07/06/17-13:05:40.4600357 [SCM] Successfully sent start control to service gpsvc, user S-1-5-18
07/06/17-13:05:40.4601289 [SCM] Successfully sent start control to service lmhosts, user S-1-5-18
07/06/17-13:05:40.4601542 [SCM] Successfully sent start control to service CoreMessagingRegistrar, user S-1-5-90-0-1
07/06/17-13:05:40.4602090 [SCM] Successfully sent start control to service TermService, user S-1-5-18
07/06/17-13:05:40.4602341 [SCM] Successfully sent start control to service NcbService, user S-1-5-18
07/06/17-13:05:40.4602536 [SCM] Successfully sent start control to service W32Time, user S-1-5-18
07/06/17-13:05:40.4660675 [SCM] Successfully sent start control to service TimeBrokerSvc, user S-1-5-18
07/06/17-13:05:40.5068238 [SCM] Successfully sent start control to service Schedule, user S-1-5-18
07/06/17-13:05:40.5435413 [SCM] Successfully sent start control to service RdpVideoMiniport, user S-1-5-20
07/06/17-13:05:40.5877716 [SCM] Successfully sent start control to service UmRdpService, user S-1-5-20
07/06/17-13:05:40.6336400 [SCM] Successfully sent start control to service CertPropSvc, user S-1-5-20
07/06/17-13:05:40.8919486 [SCM] Successfully sent start control to service SessionEnv, user S-1-5-20
07/06/17-13:05:40.9437595 [SCM] Successfully sent start control to service netprofm, user S-1-5-18
07/06/17-13:05:40.9437849 [SCM] Successfully sent start control to service UserManager, user S-1-5-18
07/06/17-13:05:41.2444548 [SCM] Successfully sent start control to service vmickvpexchange, user S-1-5-18
07/06/17-13:05:41.2898074 [SCM] Successfully sent start control to service vmicvss, user S-1-5-18
07/06/17-13:05:41.2898367 [SCM] Successfully sent start control to service vmicshutdown, user S-1-5-18
07/06/17-13:05:41.2902957 [SCM] Successfully sent start control to service vmictimesync, user S-1-5-18
07/06/17-13:05:41.3260049 [SCM] Successfully sent start control to service WPDBusEnum, user S-1-5-18
07/06/17-13:05:41.3444823 [SCM] Successfully sent start control to service vmicheartbeat, user S-1-5-18
07/06/17-13:05:41.3548887 [SCM] Successfully sent start control to service WinHttpAutoProxySvc, user S-1-5-20
07/06/17-13:05:41.3549103 [SCM] Successfully sent start control to service vmicrdv, user S-1-5-18
07/06/17-13:05:41.9211318 [SCM] Successfully sent start control to service VSS, user S-1-5-18
07/06/17-13:05:42.5324545 [SCM] Successfully sent start control to service ScDeviceEnum, user S-1-5-18
07/06/17-13:05:42.5989696 [SCM] Successfully sent start control to service NetSetupSvc, user S-1-5-18
07/06/17-13:05:42.7008186 [SCM] Successfully sent start control to service NgcCtnrSvc, user S-1-5-18
07/06/17-13:05:44.1651981 [SCM] Successfully sent start control to service WdiServiceHost, user S-1-5-19
07/06/17-13:05:44.3231928 [SCM] Successfully sent start control to service NcaSvc, user S-1-5-18
07/06/17-13:05:44.7769902 [SCM] Successfully sent start control to service sppsvc, user S-1-5-20
07/06/17-13:05:45.1100675 [SCM] Successfully sent start control to service wisvc, user S-1-5-18
07/06/17-13:05:45.2169191 [SCM] Successfully sent start control to service wuauserv, user S-1-5-18
07/06/17-13:05:45.2169410 [SCM] Successfully sent start control to service fhsvc, user S-1-5-18
07/06/17-13:05:45.6471780 [SCM] Successfully sent start control to service NcaSvc, user S-1-5-18
07/06/17-13:05:47.3489415 [SCM] Successfully sent start control to service WdNisSvc, user S-1-5-18
07/06/17-13:05:49.4258072 [SCM] Successfully sent start control to service CDPSvc, user S-1-5-18
07/06/17-13:05:50.9283667 [SCM] Successfully sent start control to service WSearch, user S-1-5-18
07/06/17-13:05:51.0034313 [SCM] Successfully sent start control to service wlidsvc, user S-1-5-18
07/06/17-13:05:51.1906412 [SCM] Successfully sent start control to service KeyIso, user S-1-5-18
07/06/17-13:05:52.5810658 [SCM] Successfully sent start control to service Appinfo, user S-1-5-18

相关内容