使用nssm注册系统服务的详解
使用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.注意事项
-
在当前目录下启动nssm注册服务,可以将其他目录/路径下的程序注册成服务
如:在D盘目录下启动nssm后,可以将E盘的程序注册为服务 -
从当前目录下使用nssm注册服务后,nssm作为系统服务的启动项,注册的服务通过是nssm来启动的,一定不能删除,否则服务将出现报错无法启动
[1]:参考链接:使用nssm注册 windows服务