如何设置WinSW托管的SpringBoot Rest API服务开机自启?
实现WinSW部署的SpringBoot服务开机自动启动
步骤1:修改WinSW配置XML
在现有服务配置XML中添加启动类型相关配置,明确设置服务为自动启动,可选添加延迟启动项避免与系统核心服务竞争资源:
<service> <id>restaurante-popular</id> <name>Restaurante Popular</name> <description>Sistema de gerenciamento do Restaurante Popular rodando como serviço Windows.</description> <!-- 新增启动类型配置 --> <startmode>Automatic</startmode> <!-- 可选:开启延迟自动启动,提升服务启动成功率 --> <delayedAutoStart>true</delayedAutoStart> <executable>java</executable> <arguments>-jar "%BASE%\restaurante-popular-0.0.1-SNAPSHOT.jar"</arguments> <logpath>%BASE%\logs</logpath> <log mode="roll"/> <onfailure action="restart" delay="5 sec"/> </service>
步骤2:更新或重新注册服务
打开管理员权限的命令提示符,切换到WinSW可执行文件与XML所在目录,执行对应命令:
- 若服务已安装,执行更新命令:
restaurante-popular.exe update - 若服务未安装,执行安装命令:
restaurante-popular.exe install
步骤3:验证启动类型设置
- 按下
Win + R,输入services.msc打开服务管理器 - 找到
Restaurante Popular服务,右键选择「属性」 - 确认「启动类型」为「自动」或「自动(延迟启动)」,点击「确定」保存
常见问题排查
- Java路径问题:建议将
<executable>改为Java的绝对路径(如C:\Program Files\Java\jdk1.8.0_301\bin\java.exe),避免环境变量缺失导致服务启动失败 - 权限问题:若服务需访问特定文件/网络资源,可在服务属性的「登录」选项卡中,设置为「本地系统账户」或拥有足够权限的账户
- Jar包路径问题:确认
%BASE%指向XML所在目录,且Jar包文件名、路径完全匹配
内容的提问来源于stack exchange,提问作者Gabriel Paiva
相关产品推荐
相关产品推荐

