Windows服务的启动、停止与自动运行
已经安装为Windows服务的程序,可以在系统启动时自动运行,并通过服务管理器查看状态。本教程用于管理自己已确认的业务服务;直接双击运行的普通exe,不会因为改一个启动类型就自动变成Windows服务。不要用停用系统服务来替代性能排查。
先识别服务名与依赖
- 在服务器按Win+R运行services.msc,以管理员权限打开“服务”。
- 找到业务对应的服务,双击属性,记录“服务名称”“显示名称”“可执行文件的路径”“启动类型”和当前状态。显示名称与真正服务名称可能不同。
- 查看“登录”选项卡的运行账户和“依存关系”。记录上游依赖和依赖它的其他服务;数据库、认证或网络服务的变更可能影响多项业务。
- 对照程序自己的安装文档,确认该项确实属于目标应用。无法确认时先查看,不执行停止、禁用或账户修改。
启动与开机自动运行
| 启动类型 | 适用含义 |
|---|---|
| 自动 | 系统启动时按服务机制启动,适合确需开机运行的业务。 |
| 自动(延迟启动) | 稍后再启动,可用于程序支持且不要求立即启动的服务。 |
| 手动 | 由管理员、应用或触发机制按需启动,不等于永远不会运行。 |
| 禁用 | 禁止按正常方式启动;不能为了省资源随意对系统服务使用。 |
- 确认目标服务允许自动启动后,选择合适启动类型并应用。
- 服务当前停止时,点击“启动”,等待状态变为正在运行。启动类型与当前状态是两项:设为自动不代表本次已经启动成功。
- 打开实际业务或检查本地健康接口、监听端口和应用日志。状态Running只证明服务控制器看到运行状态,不能代替业务可用验证。
安全停止业务服务
- 先确认该服务属于自己的业务,记录原状态,保存正在处理的数据,并安排允许中断的维护时间。在“依存关系”中检查依赖它的其他服务;涉及数据库时先按程序文档停止写入或关联任务。
- 在服务列表中选择目标业务服务,点击“停止”;也可在该服务属性页点击“停止”。核对弹窗中将受影响的依赖服务,不接受自己无法确认的级联停止。
- 等待状态变为“已停止”(PowerShell中为Stopped),再确认预期端口、后台任务和业务停止状态。停止不会自动把启动类型改成禁用,下次开机是否启动仍由启动类型和触发机制决定。
- “停止”按钮灰色或提示服务不支持停止时,先检查当前状态、管理权限和程序文档;某些服务不接受停止控制。不要改用强制结束未知进程;联系应用维护者安排受支持的关闭方式或维护重启。
- 维护结束后按前一节重新启动,并用实际业务验证恢复;需要保持停止时记录原因和恢复安排。
PowerShell查看与变更示例
仅对自己确认的业务服务使用示例,把YourServiceName换成属性页中的实际服务名称。先查看和预览,再安排实际变更。
$svc = 'YourServiceName'
Get-Service -Name $svc | Select-Object Name,Status,StartType
Set-Service -Name $svc -StartupType Automatic -WhatIf
WhatIf用于预览意图,不会证明服务能正常启动。确认维护安排后,可移除该参数完成启动类型设置;需要启动服务时使用服务管理器的启动按钮,便于观察具体错误。
需要重启或启动失败时
先保存未完成任务,通知业务使用者,并按依赖顺序操作;不要在唯一RDP会话里随意重启远程桌面、网络或安全服务。失败时保存错误代码、发生时间、服务账户和程序日志。常见原因包括运行账户凭据失效、路径不存在、依赖未启动或配置错误;应针对原因处理,不连续点击重启。
完成检查与撤销
记录变更前后的启动类型和状态,并确认业务和日志恢复正常。只有需要验证开机行为时,才在已经安排的维护窗口重启整机;不要为了截图而随意重启。出现业务异常,可先恢复记录的原启动类型,再按程序文档恢复服务和配置。