使用nssm注册系统服务流程

在项目中需要将用到的jar包、bat脚本和exe应用程序注册成系统服务,并使程序开机自启动。本次使用nssm将应用注册为系统服务。

1.下载nssm

访问nssm官网,下载nssm:
在这里插入图片描述
解压后,看到有win32和win64两个目录,查看需要注册服务的PC是32位系统还是64位系统,就将该目录下的nssm.exe程序复制到需要注册服务的服务器上。
在这里插入图片描述

2.编写Jar包自启动脚本

注意:nssm注册服务仅支持可执行文件(.bat/.exe),如果需要设置jar包自启动,则需要编写jar启动的bat脚本
如果是.bat或.exe可执行的应用程序可以直接注册(忽略2,直接到第三步)

需新建一个txt文档,添加以下代码用于启动jar包,然后将后缀修改为.bat
jar包启动脚本命令如下:

title thinvent-iot    
java -jar -Dfile.encoding=utf-8 -Xms1024M -Xmx1024M -XX:PermSize=256M -XX:MaxPermSize=256M thinvent-iot-boot.jar

解释:
第一句:title是应用的标题,直接运行脚本时命令行的标题显示为这个
第二句:指定jar包运行的内存,内存为1024的倍数,thinvent-iot-boot.jar是jar包的名字
需要根据自己的需要修改应用的标题和改为自己的jar包名

3.注册系统服务

如果需要注册服务的应用程序是.bat/.exe,可以直接到这一步注册服务
1.将nssm.exe程序复制到需要注册系统服务的应用程序目录下
如:需要将nginx设置为开机自启动,则将nssm.exe复制到nginx.exe同级目录下
在这里插入图片描述

在文件夹中按住shift按键,点击鼠标右键,打开命令行窗口,输入指令:

nssm install 自定义服务名称

此时会打开nssm的窗口
在这里插入图片描述
2.配置服务自启动文件的路径
Path:点击此处按钮,选择文件夹下需要自启动的应用程序(.bat/.exe)
Startup directory:自启动应用程序所在的路径,选择应用程序后会自动填充
在这里插入图片描述
3.添加服务的描述(建议)
在Details选项卡下的Description栏,添加对服务的描述,便于了解区分注册后的服务功能
在这里插入图片描述
4.安装系统服务
点击“Install service”按钮,将可执行程序注册成系统服务
在这里插入图片描述
注册成功后,会出现服务注册成功的提示,如下图所示:
在这里插入图片描述
查看系统服务,注册成功后可以看到已成功的系统服务列表:
在这里插入图片描述
5.将系统服务设置为延迟启动(建议)
右键系统服务,将服务设置为自动(延迟启动),然后启动系统服务即可。
建议设置为延迟启动,否则可能会影响其他系统服务的启动速度。
在这里插入图片描述

---------------------当然,更简便的方式是使用nssm注册服务时,直接设置自启动(延迟启动):-------------------------

在这里插入图片描述

4.NSSM指令

nssm start servername //启动服务

nssm stop servername //暂停服务

nssm restart servername //重新启动服务

nssm remove servername //删除创建的servername服务

5.注意事项

  1. 在当前目录下启动nssm注册服务,可以将其他目录/路径下的程序注册成服务
    如:在D盘目录下启动nssm后,可以将E盘的程序注册为服务

  2. 从当前目录下使用nssm注册服务后,nssm作为系统服务的启动项,注册的服务通过是nssm来启动的,一定不能删除,否则服务将出现报错无法启动

[1]:参考链接:使用nssm注册 windows服务

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐