Windows服务的启动、停止与自动运行

已经安装为Windows服务的程序,可以在系统启动时自动运行,并通过服务管理器查看状态。本教程用于管理自己已确认的业务服务;直接双击运行的普通exe,不会因为改一个启动类型就自动变成Windows服务。不要用停用系统服务来替代性能排查。

先识别服务名与依赖

  1. 在服务器按Win+R运行services.msc,以管理员权限打开“服务”。
  2. 找到业务对应的服务,双击属性,记录“服务名称”“显示名称”“可执行文件的路径”“启动类型”和当前状态。显示名称与真正服务名称可能不同。
  3. 查看“登录”选项卡的运行账户和“依存关系”。记录上游依赖和依赖它的其他服务;数据库、认证或网络服务的变更可能影响多项业务。
  4. 对照程序自己的安装文档,确认该项确实属于目标应用。无法确认时先查看,不执行停止、禁用或账户修改。

启动与开机自动运行

中文服务属性中TermService、自动启动类型和正在运行状态
中文服务属性示例,具体Windows版本和构建未注明。对照服务名称、启动类型、状态和控制按钮;图中Remote Desktop Services正在运行,“启动”为灰色,不应停止维持远程管理连接的服务。
启动类型 适用含义
自动 系统启动时按服务机制启动,适合确需开机运行的业务。
自动(延迟启动) 稍后再启动,可用于程序支持且不要求立即启动的服务。
手动 由管理员、应用或触发机制按需启动,不等于永远不会运行。
禁用 禁止按正常方式启动;不能为了省资源随意对系统服务使用。
  1. 确认目标服务允许自动启动后,选择合适启动类型并应用。
  2. 服务当前停止时,点击“启动”,等待状态变为正在运行。启动类型与当前状态是两项:设为自动不代表本次已经启动成功。
  3. 打开实际业务或检查本地健康接口、监听端口和应用日志。状态Running只证明服务控制器看到运行状态,不能代替业务可用验证。

安全停止业务服务

  1. 先确认该服务属于自己的业务,记录原状态,保存正在处理的数据,并安排允许中断的维护时间。在“依存关系”中检查依赖它的其他服务;涉及数据库时先按程序文档停止写入或关联任务。
  2. 在服务列表中选择目标业务服务,点击“停止”;也可在该服务属性页点击“停止”。核对弹窗中将受影响的依赖服务,不接受自己无法确认的级联停止。
  3. 等待状态变为“已停止”(PowerShell中为Stopped),再确认预期端口、后台任务和业务停止状态。停止不会自动把启动类型改成禁用,下次开机是否启动仍由启动类型和触发机制决定。
  4. “停止”按钮灰色或提示服务不支持停止时,先检查当前状态、管理权限和程序文档;某些服务不接受停止控制。不要改用强制结束未知进程;联系应用维护者安排受支持的关闭方式或维护重启。
  5. 维护结束后按前一节重新启动,并用实际业务验证恢复;需要保持停止时记录原因和恢复安排。

PowerShell查看与变更示例

仅对自己确认的业务服务使用示例,把YourServiceName换成属性页中的实际服务名称。先查看和预览,再安排实际变更。

$svc = 'YourServiceName'
Get-Service -Name $svc | Select-Object Name,Status,StartType
Set-Service -Name $svc -StartupType Automatic -WhatIf

WhatIf用于预览意图,不会证明服务能正常启动。确认维护安排后,可移除该参数完成启动类型设置;需要启动服务时使用服务管理器的启动按钮,便于观察具体错误。

需要重启或启动失败时

先保存未完成任务,通知业务使用者,并按依赖顺序操作;不要在唯一RDP会话里随意重启远程桌面、网络或安全服务。失败时保存错误代码、发生时间、服务账户和程序日志。常见原因包括运行账户凭据失效、路径不存在、依赖未启动或配置错误;应针对原因处理,不连续点击重启。

完成检查与撤销

记录变更前后的启动类型和状态,并确认业务和日志恢复正常。只有需要验证开机行为时,才在已经安排的维护窗口重启整机;不要为了截图而随意重启。出现业务异常,可先恢复记录的原启动类型,再按程序文档恢复服务和配置。

相关文档