NSSM-the Non-Sucking Service Manager

介绍

NSSM是一个服务封装程序,它可以将普通exe程序封装成服务,使之像windows服务一样运行。同类型的工具还有微软自己的srvany,不过nssm更加简单易用,并且功能强大。它的特点如下:

  1. 支持普通exe程序(控制台程序或者带界面的Windows程序都可以)
  2. 安装简单,修改方便
  3. 可以重定向输出(并且支持Rotation)
  4. 可以自动守护封装了的服务,程序挂掉了后可以自动重启
  5. 可以自定义环境变量

这里面的每一个功能都非常实用,使用NSSM来封装服务可以大大简化我们的开发流程了。

  • 开发的时候是一个普通程序,降低了开发难度,调试起来非常方便
  • 安装简单,并且可以随时修改服务属性,更新也更加方便
  • 可以利用控制台输出直接实现一个简单的日志系统
  • 不用考虑再加一个服务实现服务守护功能

参考整理:https://www.cnblogs.com/TianFang/p/7912648.html

安装

访问nssm官网下载:http://www.nssm.cc/download

nssm应该在Windows 2000或更高版本下工作。具体来说,支持Windows 7,Windows 8和Windows 10。下载中包含32位和64位二进制文​​件。在大多数情况下,在64位Windows上运行32位版本应该是安全的,但是在某些情况下,您可能会发现它不起作用,必须使用64位版本。这两个版本都是从相同的源代码编译的。如果一个适合您,请使用该一个。如果没有,请尝试其他方法。

nssm是使用Jenkins 持续集成服务器构建的。

源代码:https://git.nssm.cc/nssm/nssm.git

下载完后解压到任意文件夹。

将bat文件安装为windows服务,以elasticsearch.bat为例

以管理员是身份打开cmd,切换到nssm 解压路径下的win64所在目录,输入指令nssm install [serverName] 如:nssm install elasticsearch

回车之后,会出现nssm界面,path填入elasticsearch.bat的全路径,startup diectory填入elasticsearch.bat所在文件夹,然后点install service按钮,如图则成功。

如图,在服务中找到刚才创建的服务,启动,如果启动成功,则没有问题。

安装exe文件

跟bat文件的安装一模一样。

服务管理

服务管理主要有启动、停止和重启,其命令如下:

  • 启动服务:nssm start [servicename]
  • 停止服务:nssm stop [servicename]
  • 重启服务:nssm restart [servicename]

当然,也可以使用系统自带的服务管理器操作和使用系统的命令。

修改参数

NSSM安装的服务修改起来非常方便,命令如下:

nssm edit [servicename]

会自动启动操作界面,直接更改即可。

服务删除

服务删除可以使用如下命令之一:

nssm remove [servicename]
nssm remove [servicename] confirm

功能没有大的区别,后面的命令是自动确认的,没有交互界面。

命令行

服务自动化需要使用更多的命令行,具体参看官方文档: Managing services from the command line

如下是一个安装Jenkins服务的示例:

nssm install Jenkins %PROGRAMFILES%\Java\jre7\bin\java.exe
nssm set Jenkins AppParameters -jar slave.jar -jnlpUrl https://jenkins/computer/%COMPUTERNAME%/slave-agent.jnlp -secret redacted
nssm set Jenkins AppDirectory C:\Jenkins
nssm set Jenkins AppStdout C:\Jenkins\jenkins.log
nssm set Jenkins AppStderr C:\Jenkins\jenkins.log
nssm set Jenkins AppStopMethodSkip 6
nssm set Jenkins AppStopMethodConsole 1000
nssm set Jenkins AppThrottle 5000
nssm start Jenkins

其它教程

网上一些nssm的使用教程,感兴趣的朋友可以参考一下:


   转载规则


《NSSM-the Non-Sucking Service Manager》 锦泉 采用 知识共享署名 4.0 国际许可协议 进行许可。
  目录