我有一个 Windows服务,在大多数服务器上工作正常.但是在一台服务器中,我看到它是在网络服务启动之前启动的.这导致服务挂起,因此操作系统无法启动.它也卡住了.什么是通常的服务启动顺序?我的Windows服务确实建立了TCP连接.我应该加一个延迟开始吗?如果是这种情况,那么在这些网络服务之后,是否所有服务都不应该延迟启动?任何帮助将非常感激.
使用延迟启动可能是一种可能的解决方案.

另一种可能性是添加依赖项,以便按照您想要的顺序启动服务.例如,您不希望您的服务在NSI服务之前启动,因为在NSI服务运行之前,网络连接不会发生.所以添加依赖项.

从MSDN开始:

if an auto-start service depends on a demand-start service,the demand-start service is also started automatically.

(关于开始顺序的更多细节也在该MSDN文章中.)

但是,如果我是你,那么这两件事中的任何一件都可能有用,我更想知道这台服务器的不同之处.在修改系统设置并使这台服务器与其他服务器相比成为“特殊雪花”之前,始终要完全了解正在发生的事情和原因是个好主意.

编辑:

你让我更多地思考这个问题,“Windows中服务的起始顺序是什么,”我的意思是,确切的顺序,我认为问题没有得到彻底的回答,至少不是公开的.

我认为这部分是因为它非常复杂. Windows服务的确切启动顺序总是在变化.有“早期启动服务”,“第1阶段服务”,“第2阶段服务”,服务组,因为它们是依赖关系等而开始的服务等.每个版本和版本的Windows都会略有不同,并且在不同的配置和部署选项方面也会有所不同.因此,除了最通用的相对术语之外,不要指望它被正式记录在其他任何内容中,例如“在自动启动服务之后启动延迟启动服务”.

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

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

这是Windows 10,RS1 / 1607.正如我之前提到的,基本上任何其他构建的结果都会略有不同.结果已根据篇幅和内容进行了编辑.首先,我认为显示服务进入Running状态的时间顺序是最有趣的,不一定是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,controls 0x00000000
07/06/17-13:05:39.8629388 [SCM] service DcomLaunch,controls 0x00000080
07/06/17-13:05:39.8699565 [SCM] service RpcEptMapper,controls 0x00000000
07/06/17-13:05:39.8745944 [SCM] service RpcSs,controls 0x000000c0
07/06/17-13:05:39.9107503 [SCM] service brokerInfrastructure,controls 0x00001080
07/06/17-13:05:39.9276072 [SCM] service LSM,controls 0x00000000
07/06/17-13:05:40.0868049 [SCM] service SystemEventsbroker,controls 0x000012c1
07/06/17-13:05:40.4599977 [SCM] service nsi,controls 0x00000001
07/06/17-13:05:40.4641823 [SCM] service lmhosts,controls 0x00000001
07/06/17-13:05:40.4705790 [SCM] service TermService,controls 0x00000005
07/06/17-13:05:40.4708935 [SCM] service CoreMessagingRegistrar,controls 0x00000000
07/06/17-13:05:40.4943177 [SCM] service gpsvc,controls 0x00000141
07/06/17-13:05:40.4975091 [SCM] service gpsvc,controls 0x00000541
07/06/17-13:05:40.5067210 [SCM] service TimebrokerSvc,controls 0x00000241
07/06/17-13:05:40.5877317 [SCM] service UmRdpService,controls 0x00000085
07/06/17-13:05:40.6327091 [SCM] service Dnscache,controls 0x00000059
07/06/17-13:05:40.6501216 [SCM] service CertPropSvc,controls 0x00000085
07/06/17-13:05:40.6716164 [SCM] service Dhcp,controls 0x00000005
07/06/17-13:05:40.6785583 [SCM] service Schedule,controls 0x000012c5
07/06/17-13:05:40.7442193 [SCM] service LanmanWorkstation,controls 0x00000043
07/06/17-13:05:40.7560620 [SCM] service EventLog,controls 0x00000205
07/06/17-13:05:40.8915301 [SCM] service SessionEnv,controls 0x00000281
07/06/17-13:05:40.9149615 [SCM] service ProfSvc,controls 0x00000005
07/06/17-13:05:40.9173657 [SCM] service NlaSvc,controls 0x000000c1
07/06/17-13:05:40.9429894 [SCM] service netprofm,controls 0x000000c1
07/06/17-13:05:40.9494092 [SCM] service UserManager,controls 0x00000001
07/06/17-13:05:41.0502482 [SCM] service NcbService,controls 0x00000081
07/06/17-13:05:41.2351873 [SCM] service vmickvpexchange,controls 0x00000003
07/06/17-13:05:41.2897569 [SCM] service vmictimesync,controls 0x00000003
07/06/17-13:05:41.3259511 [SCM] service vmicshutdown,controls 0x00000003
07/06/17-13:05:41.3284648 [SCM] service vmicvss,controls 0x00000103
07/06/17-13:05:41.3444338 [SCM] service Themes,controls 0x00000001
07/06/17-13:05:41.3548424 [SCM] service vmicrdv,controls 0x00000003
07/06/17-13:05:41.3823139 [SCM] service WPDBusEnum,controls 0x000004c1
07/06/17-13:05:41.3843401 [SCM] service WinHttpAutoproxySvc,controls 0x00000041
07/06/17-13:05:41.3856439 [SCM] service vmicheartbeat,controls 0x00000003
07/06/17-13:05:41.3874138 [SCM] service EventSystem,controls 0x00000001
07/06/17-13:05:41.5580789 [SCM] service SENS,controls 0x00000041
07/06/17-13:05:41.6772846 [SCM] service FontCache,controls 0x00000005
07/06/17-13:05:41.9209576 [SCM] service AudioEndpointBuilder,controls 0x000000c1
07/06/17-13:05:42.0189267 [SCM] service VSS,controls 0x00000005
07/06/17-13:05:42.0210403 [SCM] service Audiosrv,controls 0x000000c1
07/06/17-13:05:42.0484759 [SCM] service SamSs,controls 0x00000000
07/06/17-13:05:42.2429764 [SCM] service Wcmsvc,controls 0x000012c5
07/06/17-13:05:42.2906325 [SCM] service ShellHWDetection,controls 0x000000c1
07/06/17-13:05:42.5323497 [SCM] service Spooler,controls 0x000004c1
07/06/17-13:05:42.5431893 [SCM] service ScDeviceEnum,controls 0x00000481
07/06/17-13:05:42.5485449 [SCM] service wudfsvc,controls 0x00000000
07/06/17-13:05:42.5989161 [SCM] service NetSetupSvc,controls 0x00000001
07/06/17-13:05:42.6021970 [SCM] service WbioSrvc,controls 0x00000441
07/06/17-13:05:42.6391087 [SCM] service SCardSvr,controls 0x00000481
07/06/17-13:05:42.7007534 [SCM] service NgcCtnrSvc,controls 0x00000001
07/06/17-13:05:42.7017472 [SCM] service BFE,controls 0x00000041
07/06/17-13:05:42.7098576 [SCM] service Winmgmt,controls 0x00000007
07/06/17-13:05:42.7222523 [SCM] service Netlogon,controls 0x00000003
07/06/17-13:05:42.8153049 [SCM] service iphlpsvc,controls 0x000000c9
07/06/17-13:05:42.8854162 [SCM] service CryptSvc,controls 0x00000085
07/06/17-13:05:42.8857247 [SCM] service DPS,controls 0x00000005
07/06/17-13:05:43.0717978 [SCM] service LanmanServer,controls 0x00000001
07/06/17-13:05:44.1651270 [SCM] service PcaSvc,controls 0x00000085
07/06/17-13:05:44.3247890 [SCM] service TrkWks,controls 0x00000005
07/06/17-13:05:44.3303880 [SCM] service DiagTrack,controls 0x000013c5
07/06/17-13:05:44.3364873 [SCM] service MpsSvc,controls 0x00000001
07/06/17-13:05:44.3497466 [SCM] service SysMain,controls 0x000000c5
07/06/17-13:05:44.3573408 [SCM] service WpnService,controls 0x00000401
07/06/17-13:05:44.3581205 [SCM] service WdiserviceHost,controls 0x00000005
07/06/17-13:05:44.7769374 [SCM] service sppsvc,controls 0x00000005
07/06/17-13:05:45.1100224 [SCM] service wisvc,controls 0x00000005
07/06/17-13:05:45.2168257 [SCM] service fhsvc,controls 0x000004c5
07/06/17-13:05:45.2489211 [SCM] service WinDefend,controls 0x000000c5
07/06/17-13:05:45.3731715 [SCM] service wuauserv,controls 0x000000c5
07/06/17-13:05:45.3899756 [SCM] service WinHttpAutoproxySvc,controls 0x00000041
07/06/17-13:05:45.3958062 [SCM] service StateRepository,controls 0x0000000d
07/06/17-13:05:45.6152215 [SCM] service tiledatamodelsvc,controls 0x00000181
07/06/17-13:05:47.3504859 [SCM] service SCardSvr,controls 0x00000481
07/06/17-13:05:47.5248612 [SCM] service WdNisSvc,controls 0x00000001
07/06/17-13:05:47.9543134 [SCM] service SCardSvr,controls 0x00000481
07/06/17-13:05:47.9543975 [SCM] service SCardSvr,controls 0x00000481
07/06/17-13:05:48.5741736 [SCM] service CDPUserSvc_33f2e,controls 0x000000c1
07/06/17-13:05:50.7171925 [SCM] service W32Time,controls 0x0000007d
07/06/17-13:05:51.0991216 [SCM] service wlidsvc,controls 0x00000081
07/06/17-13:05:51.2245142 [SCM] service KeyIso,controls 0x00000001
07/06/17-13:05:51.4173887 [SCM] service WSearch,controls 0x000010c5
07/06/17-13:05:52.7271615 [SCM] service Appinfo,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

Windows服务器中服务的起始顺序是什么的更多相关文章

  1. 如何让Windows SCM在失败时重启我的服务

    我有一些我用delphi编写的Windows服务,它们通常工作得很好,但有时我会得到一个可以被视为致命的异常抛出.发生这种情况时,该服务旨在停止.我的问题是如何以这样的方式退出服务,即SCM将自动尝试重新启动服务.(我已经在服务管理器中设置了服务的恢复选项)MSDN州AserviceisconsideredFailedwhenitterminateswithoutreportingastatuso

  2. 如何在同一域中的不同服务器上设置Windows服务之间的依赖关系

    我有一种情况,在不同服务器上的Windows服务启动之前,不应启动一台服务器上的Windows服务.我想要做的是设置服务依赖性,但标准的“scdepend=service2”似乎不适合这一点.我可以将服务代码包装在TryUntilSuccesful()类型的调用中,但我想知道是否有一种建议的方法来为同一域中的服务器之间的Windows服务设置依赖关系.同一台计算机上的Windo

  3. Centos7.2安装CDH5.7.2core steps

    软件准备jdk-8u121-linux-x64.rpmcloudera-manager-centos7-cm5.7.2_x86_64.tar.gzCDH-5.7.2-1.cdh5.7.2.p0.18-el7.parcelCDH-5.7.2-1.cdh5.7.2.p0.18-el7.parcel.sha更改为sha后缀manifest.jsonMysqL57-community-release-el

  4. Windows服务器中服务的起始顺序是什么

    我有一个Windows服务,在大多数服务器上工作正常.但是在一台服务器中,我看到它是在网络服务启动之前启动的.这导致服务挂起,因此操作系统无法启动.它也卡住了.什么是通常的服务启动顺序?我的Windows服务确实建立了TCP连接.我应该加一个延迟开始吗?

  5. CDH 5.9 CentOS 6.5 离线安装部署

    CDH5.9离线安装部署手册站在巨人的肩膀上面继续前进,不断的踩坑与填坑,感谢破击手的参考指南。ntp与自身进行同步需要一小段时间,大约需要5分钟。使用命令ntpstat检查服务启动后自身是否同步完成,如出现以下信息则完成。我试安装时,这点遗漏了,导致安装CDH的时候一直刷不出5.9版本,通过日志发现,没有manifest.json就会去下载,不能访问外网就报错了,但不影响安装CDH,还是mv一下吧。

  6. CDH在Centos 7离线安装

    不过最近要求在Centos7上离线安装,有点坑,网上的很多都是抄来抄去,安装到一半可能就走不下去,这里是本人亲测,遇到的问题都一一说明并且解决掉。Centos7自带java,我们查看一下版本:Cloudera官方给出:所以我们需要卸载本机自带的openJDK,安装我们自己的JDK到/usr/java/目录下。

  7. 权限 – 是否可以使用组策略授予管理Windows服务的权限?

    我真的很想知道这是否可能,如果是这样,你建议我在哪里寻找更多信息?

  8. centos7.2下搭建CDH5.8.3

    也就是主节点上面。--scm-hosthadoop1:CMS的主机,一般是和MysqL安装的主机是在同一个主机上。最后三个参数是:数据库名,数据库用户名,数据库密码。

  9. Windows下配置Git服务器和客户端 scm-manager

    配置scm-manager在机器上安装java环境,从http://java.com/zh_CN/download/manual.jsp选择脱机版下载安装从https://bitbucket.org/sdorra/scm-manager/wiki/download下载最新的scm-server-1.24-app.zip安装为系统服务:1scm-server.batinstall然后在系统服务里设置为自动启动,然后启动服务就可以通过http://localhost:8080访问了,默认用户名和密码都是scm

  10. centOS上安装最新git 2.4.0

    git地址:https://www.kernel.org/pub/software/scm/git/1.先安装一堆依赖yuminstallcurlcurl-develzlib-developenssl-develperlcpioexpat-develgettext-develperl-ExtUtils-MakeMaker2.下载最新的git先切换到下载目录。我习惯下载到src目录cd/usr/lo

随机推荐

  1. static – 在页面之间共享数据的最佳实践

    我想知道在UWP的页面之间发送像’selectedItem’等变量的最佳做法是什么?创建一个每个页面都知道的静态全局变量类是一个好主意吗?

  2. .net – 为Windows窗体控件提供百分比宽度/高度

    WindowsForm开发的新手,但在Web开发方面经验丰富.有没有办法为Windows窗体控件指定百分比宽度/高度,以便在用户调整窗口大小时扩展/缩小?当窗口调整大小时,可以编写代码来改变控件的宽度/高度,但我希望有更好的方法,比如在HTML/CSS中.在那儿?

  3. 使用Windows Azure查询表存储数据

    我需要使用特定帐户吗?>将应用程序部署到Azure服务后,如何查询数据?GoogleAppEngine有一个数据查看器/查询工具,Azure有类似的东西吗?>您可以看到的sqlExpressintance仅在开发结构中,并且一旦您表示没有等效,所以请小心使用它.>您可以尝试使用Linqpad查询表格.看看JamieThomson的thispost.

  4. windows – SetupDiGetClassDevs是否与文档中的设备实例ID一起使用?

    有没有更好的方法可以使用DBT_DEVICEARRIVAL事件中的数据获取设备的更多信息?您似乎必须指定DIGCF_ALLCLASSES标志以查找与给定设备实例ID匹配的所有类,或者指定ClassGuid并使用DIGCF_DEFAULT标志.这对我有用:带输出:

  5. Windows Live ID是OpenID提供商吗?

    不,WindowsLiveID不是OpenID提供商.他们使用专有协议.自从他们的“测试版”期结束以来,他们从未宣布计划继续它.

  6. 如果我在代码中进行了更改,是否需要重新安装Windows服务?

    我写了一个Windows服务并安装它.现在我对代码进行了一些更改并重新构建了解决方案.我还应该重新安装服务吗?不,只需停止它,替换文件,然后重新启动它.

  7. 带有双引号的字符串回显使用Windows批处理输出文件

    我正在尝试使用Windows批处理文件重写配置文件.我循环遍历文件的行并查找我想要用指定的新行替换的行.我有一个’函数’将行写入文件问题是%Text%是一个嵌入双引号的字符串.然后失败了.可能还有其他角色也会导致失败.如何才能使用配置文件中的所有文本?尝试将所有“在文本中替换为^”.^是转义字符,因此“将被视为常规字符你可以尝试以下方法:其他可能导致错误的字符是:

  8. .net – 将控制台应用程序转换为服务?

    我正在寻找不同的优势/劣势,将我们长期使用的控制台应用程序转换为Windows服务.我们为ActiveMQ使用了一个叫做java服务包装器的东西,我相信人们告诉我你可以用它包装任何东西.这并不是说你应该用它包装任何东西;我们遇到了这个问题.控制台应用程序是一个.NET控制台应用程序,默认情况下会将大量信息记录到控制台,尽管这是可配置的.任何推荐?我们应该在VisualStudio中将其重建为服务吗?我使用“-install”/“-uninstall”开关执行此操作.例如,seehere.

  9. windows – 捕获外部程序的STDOUT和STDERR *同时*它正在执行(Ruby)

    哦,我在Windows上:-(实际上,它比我想象的要简单,这看起来很完美:…是的,它适用于Windows!

  10. windows – 当我试图批量打印变量时,为什么我得到“Echo is on”

    我想要执行一个简单的批处理文件脚本:当我在XP中运行时,它给了我预期的输出,但是当我在Vista或Windows7中运行它时,我在尝试打印值时得到“EchoisOn”.以下是程序的输出:摆脱集合表达式中的空格.等号(=)的两侧可以并且应该没有空格BTW:我通常在@echo关闭的情况下启动所有批处理文件,并以@echo结束它们,所以我可以避免将代码与批处理文件的输出混合.它只是使您的批处理文件输出更好,更清洁.

返回
顶部