使用nssm注冊(cè)系統(tǒng)服務(wù)的詳細(xì)方法
對(duì)于Windows平臺(tái)來說,很多軟件或系統(tǒng)的后臺(tái)服務(wù)是基于windows服務(wù)的方式運(yùn)行的,它的優(yōu)勢(shì)是穩(wěn)定可靠,有進(jìn)程保護(hù),但對(duì)于一些普通exe程序(控制臺(tái)程序或帶界面的windows程序)或bat文件是否也可以封裝成windows服務(wù)進(jìn)行運(yùn)行呢?其實(shí)windows本身就有SC.exe,它為Windows系統(tǒng)自帶工具,可對(duì)Windows系統(tǒng)服務(wù)進(jìn)行創(chuàng)建,查詢,啟動(dòng),停止,刪除等操作。但是SC.exe 只支持操作服務(wù)控制管理器(SCM)接口規(guī)范的系統(tǒng)服務(wù),比如一般的網(wǎng)絡(luò)服務(wù)進(jìn)程如nginx 等無法作為服務(wù)直接啟動(dòng)了,因此本文介紹一個(gè)可以封裝普通exe程序或bat文件的windows服務(wù)工具:NSSM。
NSSM是一個(gè)服務(wù)封裝程序,它可以將普通exe程序或bat文件封裝成服務(wù),使之像windows服務(wù)一樣運(yùn)行。同類型的工具還有微軟自己的srvany,不過nssm更加簡(jiǎn)單易用,并且功能強(qiáng)大。它的特點(diǎn)如下:
1.支持普通exe程序(控制臺(tái)程序或者帶界面的Windows程序都可以)或bat文件
2.安裝簡(jiǎn)單又方便
3.可以重定向輸出(并且支持Rotation)
4.可以自動(dòng)守護(hù)封裝了的服務(wù),程序掛掉了后可以自動(dòng)重啟
5.可以自定義環(huán)境變量
6.可以自定義啟動(dòng)參數(shù)
從以上可以得知,NSSM每個(gè)功能都很實(shí)用,可以大大簡(jiǎn)化開發(fā)流程,降低了開發(fā)難度,使用和調(diào)試起來也非常方便,特別不需要考慮開發(fā)一個(gè)服務(wù)實(shí)現(xiàn)服務(wù)守護(hù)功能,以確保穩(wěn)定可靠。
NSSM的官網(wǎng)下載地址:http://nssm.cc/download,如下圖:

NSSM的官網(wǎng)下載地址
NSSM常用命令,如下:
1.安裝服務(wù):nssm install 服務(wù)名稱
2.刪除服務(wù):nssm remove 服務(wù)名稱
3.刪除服務(wù)確定:nssm remove 服務(wù)名稱 confirm
4.修改服務(wù)(顯示界面修改):nssm edit 服務(wù)名稱
5.啟動(dòng)服務(wù):nssm start 服務(wù)名稱
6.停止服務(wù):nssm stop 服務(wù)名名稱
7.停止服務(wù):nssm stop 服務(wù)名稱
NSSM使用步驟,如下:
1.下載NSSM
2.根據(jù)windows平臺(tái),將32/64位nssm.exe文件解壓至任意文件夾
3.cmd定位至nssm.exe所在目錄,如你操作系統(tǒng)是32bit,請(qǐng)對(duì)應(yīng)32位的nssm.exe文件,如你操作系統(tǒng)是64bit,請(qǐng)對(duì)應(yīng)64位的nssm.exe
4.輸入 nssm install {服務(wù)名稱},即注冊(cè)Windows服務(wù)的名稱。

對(duì)應(yīng)的nssm.exe
注冊(cè)服務(wù)彈出如下NSSM界面,如下圖:

注冊(cè)服務(wù)
設(shè)置說明,如下:
1.Application Path: 選擇系統(tǒng)安裝的exe或bat。
2.Startup directory: 選擇exe或bat項(xiàng)目的根目錄。
3.Arguments: 輸入啟動(dòng)參數(shù)。
上述步驟操作完成,即可點(diǎn)擊Install service來注冊(cè)服務(wù)。我們?cè)谙到y(tǒng)的服務(wù)中即可找到剛剛注冊(cè)的服務(wù)。

安裝服務(wù)

安裝成功

新安裝的windows服務(wù)
在系統(tǒng)服務(wù)中找到剛剛注冊(cè)的服務(wù),右鍵屬性 - 恢復(fù)即可設(shè)置此服務(wù)掛掉重啟等內(nèi)容。
需要注意一點(diǎn),安裝完服務(wù)后,需要啟動(dòng)服務(wù),否則沒有生效。

浙公網(wǎng)安備 33010602011771號(hào)