如何在系统启动时使Windows服务变为“正在运行”

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在系统启动时使Windows服务变为“正在运行”相关的知识,希望对你有一定的参考价值。

我知道这已经回答了here,但我有一个更具体的问题。我做了添加建议

serviceInstaller1.StartType = ServiceStartMode.Automatic;
serviceInstaller1.DelayedAutoStart = true;

事实上我可以确认安装后我看到我的服务有Startup Type等于Automatic (Delayed Start)。然而,我重新启动了我的机器,并没有像其他服务那样Status等于Running。我试过没有serviceInstaller1.DelayedAutoStart = true;和同样的问题。我想知道我的Log On As是否需要不是我的域帐户。或者还有什么问题呢?

答案

首先,我会检查服务是否以logon = SYSTEM开头。如果可行,根据我的经验(大型企业环境),最常见的原因是服务应该运行的用户帐户没有“登录为服务”的权限。在Windows安全事件日志中查找登录错误。根据您的环境,您可以使用GPO来启用此权限,或者如果在Windows环境中允许,则可以自行设置(通过本地安全策略)。

或者您的服务可能在OnStart()中崩溃,但这也可以(正如Brien和Shetty所说)通常在事件日志(应用程序事件日志)中看到。

以上是关于如何在系统启动时使Windows服务变为“正在运行”的主要内容,如果未能解决你的问题,请参考以下文章

如何在本地系统帐户下运行 CMD.exe?

如何在C#中跟踪和停止正在运行的应用程序(Windows服务)

如何启动sql server 2012服务

检查 Windows 服务列表是不是正在运行,如果不是从批处理文件启动

如何使用 Qt 启动/停止 Windows 服务?

如何在 Win 7 中为 C 中的 Windows 服务检索系统代理设置