1. 程式人生 > 其它 >如何用零程式碼將應用封裝成服務-NSSM

如何用零程式碼將應用封裝成服務-NSSM

引言

NSSM是什麼?借用官方標題"NSSM - the Non-Sucking Service Manager",NSSM - 非吸吮服務經理。實際上NSSM是一個服務封裝程式,它可以將普通exe程式封裝成服務,使之像windows服務一樣執行。

常用命令

1、安裝服務
nssm install 服務名稱 應用程式路徑 引數

Tips:如果nssm跟應用程式在同一目錄只需應用名稱帶上字尾.exe,如果不在同一目錄需完整路徑,如:"C:\Program Files\app.exe")

2、刪除服務
nssm remove 服務名稱 

Tips:此命令會彈出nssm窗體詢問是否確認關閉,如下圖

3、刪除服務並確定
nssm remove 服務名稱 confirm
4、修改服務
nssm edit 服務名稱 

Tips:此命令會彈出nssm窗體進行操作,如下圖

5、啟動服務
nssm start 服務名稱
6、停止服務
nssm stop 服務名稱
7、重啟服務
nssm restart 服務名稱

小試牛刀

1、在當前目錄路徑欄輸入cmd回車

2、輸入命令:nssm install TestService

3、在彈出的窗體中進行視覺化配置

實際運用

在實際運用過程中,肯定不是讓使用者去執行這些命令,所以這裡以bat批處理作為演示

1、首先準備好nssm程式和即將要被封裝成服務的應用程式,官網下載地址:

http://www.nssm.cc/download

2、編寫批處理指令碼

簡單講解下上面指令碼意思:

第一行:批處理語法,大概意思就是關閉回顯

第二行:停止服務

第三行:刪除服務並確認

第四行:將"webrtc-streamer.exe"這個應用程式封裝成名為"TestService"的服務,並給應用程式傳遞了引數"-H 0.0.0.0:8005"

第五行:啟動服務

有同學就要問了,直接安裝服務再啟動不就完了,兩行解決。是的,確實可以,為了安裝穩妥起見防止發生衝突,先停服務刪除服務再安裝再啟動。

3、執行批處理,開啟Windows服務控制檯,即可看到服務已經正常運行了。做成批處理之後還可被其它程式呼叫執行,或者在安裝包裡做一些操作,安裝完執行該指令碼。

值得注意的是nssm自帶程序守護功能被做成服務的應用程式掛掉它會自動再次跑起來,簡直是打不死的小強,看下面動態圖,可以看出我直接結束掉該程序,直接就會再次起來,PID有變化。

結束語

實際上功能還有很多,比如I/0重定向日誌輸出等等,具體用法可以參考官網介紹:http://www.nssm.cc/