场景
项目上需要将后台服务jar包注册window系统中,并设置开机自动启动,因为需要后台服务需要等待nacos服务启动,所以还需要设置延时启动以及启动失败后自动重启
解决
github上下载WinSW包
修改xml文件为以下配置
<configuration>
<id>test_service</id>
<name>test_service</name>
<description>This is test_service.</description>
<env name="JAVA_HOME" value="%JAVA_HOME%" />
<executable>%JAVA_HOME%\bin\java</executable>
<arguments> -Dfile.encoding=gbk -jar -Xms1024m -Xmx1024m -Xss1024k test.jar --spring.config.location=./bootstrap.properties</arguments>
<!-- 开机启动 -->
<startmode>Automatic</startmode>
<!-- 延迟启动,表示在所有开机马上启动的服务启动之后再启动 -->
<delayedAutoStart>true</delayedAutoStart>
<onfailure action="restart" delay="10 sec"/>
<onfailure action="restart" delay="30 sec"/>
<resetfailure>1 hour</resetfailure>
<!-- 日志配置 -->
<logpath>%BASE%\log</logpath>
<log mode="roll-by-size">
<sizeThreshold>5120</sizeThreshold>
<keepFiles>1</keepFiles>
</log>
</configuration>
修改你的sample-minimal.xml
跟WinSW.NET4.exe
为自己对应服务的名字,例如可修改为test_service.xml
跟test_service.exe
最后打开cmd,输入命令
test_service install
即可完成服务注册