跳至主要內容

windows下服务注册

chensino原创小于 1 分钟

1.需求

    1. windows下没有像linux的`nohup xxx &`的后台启动命令,springboot项目就无法后台运行
    2. 把任意一个命令注册为服务

2. 实现方式

2.1 使用nssm

使用nssm把一个exe命令注册为服务可以直接执行nssm install ServiceName "Path\to\your\executable" "arguments",arguments可以没有,注册 为服务,在服务管理就可以看到,也可以直接在命令行启动ServiceName start

2.2 使用winsw

winsw也差不多,不过他要配置一个xml文件


<!-- 这里的根元素必须是service节点 -->
<service>
<!-- 指定在Windows系统内部使用的识别服务的ID,唯一 -->
<id>HomeinnWorkOrder</id>
<!-- 服务的简短名称,唯一 -->
<name>HomeinnWorkOrder</name>
<!-- 描述 -->
<description>This is HomeinnWorkOrder service.</description>
<!-- 指定要启动的可执行文件。 -->
<executable>java</executable>
<!-- 指定启动的Jar及环境 -->
<arguments>-jar HomeinnWorkOrder.jar --spring.profiles.active=dev</arguments>
<!-- 开机启动 -->
<startmode>Automatic</startmode>
<!-- 日志配置,项目中以及配置了logback,所以在这里就不输出日志了 -->
<logmode>none</logmode>
</service>

然后安装服务:


<!--项目名.exe install-->
HomeinnWorkOrder.exe install

删除服务:

<!--项目名.exe uninstall-->
HomeinnWorkOrder.exe uninstall