使用NSSM将exe封装为服务

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

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

这里面的每个功能都很是实用,使用NSSM来封装服务能够大大简化咱们的开发流程了。java

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

我以为它还能够须要增长的一个功能是将输入输出重定向为一个tcp链接,这样能够经过telnet的方式实现程序的交互了,那样就更加好用了。windows

下面就简单的介绍一下如何使用这个工具。app

首先去nssm的官网下载tcp

 

服务安装: 工具

服务安装可使用以下命令: nssm install <servicename>测试

执行此命令后,会出现一个界面,基本上看着就知道怎么用了,大多数状况下,只须要填第一个界面的程序路径就能够了。spa

其它界面的是高级参数的配置,能够根据须要自行选择。命令行

参数填完后执行"install service"按钮便可将服务安装到系统,可使用系统的服务管理工具查看了。调试

固然,若是要自动化安装,能够直接带上程序路径: nssm install <servicename> <program> [<arguments>]

NSSM自己win7及以上的系统基本都是支持的,我测试过win7,2008,2016系统,都是没有问题的,若是安装失败,请首先检查是否装了某国产管家或国产杀毒软件。

安装完成后,服务尚未启动,须要经过下面的服务管理的命令启动服务。

 

服务管理:

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

  • 启动服务: 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的使用教程,感兴趣的朋友能够参考一下:

相关文章
相关标签/搜索