用springboot 开发了一个定时服务工具,每天在后台定时处理数据,暂时运行在Windows系统环境下。所以为了确保注销系统账户后,不关闭此程序,就需要配置成Windows Service。
spring官方推荐使用winsw来把springboot 项目配置为windows service,优点是简单,上手快,不需要任何开发,仅需要修改配置文件即可,并且是开源的。真是java开发者的福音。
spring官方推介:https://docs.spring.io/spring-boot/docs/1.5.9.RELEASE/reference/htmlsingle/#deployment-windows
源码地址:https://github.com/winsw/winsw
网站中有使用说明,配置介绍等,在此不做赘述,仅仅列举一下操作流程和注意事项。有两种使用方式。第一种是winsw作为全局工具使用;第二种是作为与java包文件一起配套使用。下面分别介绍:
当一台服务器上部署多个windows服务时,可以使用这种方式,每个服务都使用同一个winsw.exe可执行文件,只是配置文件不同。所以每次执行命令都要带上配置文件,这样会有些麻烦。或者,仅通过命令行安装和卸载服务,开启关闭等其他操作都通过服务管理工具来操作。
winws.exe文件大小18M左右(不同版本可能有所不同),就算每个windows服务复制一份,也是可行的。所以拷贝winsw.exe与java包文件,配置文件一起作为配套工具也可以。但 这要重命名winws.exe文件,且保持文件名与配置文件一致。在执行时,仅需要把winws.exe文件当成一个命令就好了,默认会带上配置文件作为参数。这样使用起来更方便,不用使用服务管理工具了。
1)创建一个文件夹,例如winServiceTest,把java包文件和winsw.exe文件都拷贝到winServiceTest中,且在文件夹中创建myapp.xml文件作为配置文件,内容如下:
<service> <id>myapp</id> <name>myapp</name> <description>Use winws.exe to install myapp as a windows service.</description> <executable>java</executable> <arguments>-Xrs -Xmx256m -jar myapp.jar</arguments> <log mode="roll"></log> </service>
2)修改winsw.exe文件名为myapp.exe.
3)通过如下命令来安装、使用、卸载windows service.
# 安装服务 myapp.exe install # 启动服务 myapp.exe start # 关闭服务 myapp.exe stop # 重启服务 myapp.exe restart # 卸载服务 myapp.exe uninstall # 更多命令,请看官方文档。