使用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的使用教程,感興趣的朋友能夠參考一下:

相關文章
相關標籤/搜索