使用NSSM注冊Windows服務
NSSM介紹
NSSM(the Non-Sucking Service Manager)是Windows環境下一款免安裝的服務管理軟件,它可以將應用封裝成服務,使之像windows服務可以設置自動啟動等。並且可以監控程序運行狀態,程序異常中斷后自動啟動,實現守護進程的功能。不僅支持圖形界面操作,也完全支持命令行設置。
同類型的工具還有微軟自己的srvany,不過nssm更加簡單易用,並且功能強大。它的特點如下:
-
支持普通exe程序(控制台程序或者帶界面的Windows程序都可以)
-
安裝簡單,修改方便
-
可以重定向輸出(並且支持Rotation)
-
可以自動守護封裝了的服務,程序掛掉了后可以自動重啟
-
可以自定義環境變量
這里面的每一個功能都非常實用,使用NSSM來封裝服務可以大大簡化我們的開發流程了。
-
開發的時候是一個普通程序,降低了開發難度,調試起來非常方便
-
安裝簡單,並且可以隨時修改服務屬性,更新也更加方便
-
可以利用控制台輸出直接實現一個簡單的日志系統
-
不用考慮再加一個服務實現服務守護功能
1.下載並解壓
下載鏈接 https://nssm.cc/download,License is public domain. 軟件或其源碼都可以無條件用於任何用途。
2. 添加到環境變量Path
這一步是為了方便直接使用nssm命令;不添加到環境變量也是可以的,但是這樣每次執行nssm命令都需要cd到nssm文件夾。
3. 注冊服務
注冊服務使用如下命令: nssm install <servicename>
參數填完后執行"install service"按鈕即可將服務安裝到系統,可以使用系統的服務管理工具service.msc查看了。
如果自動化安裝,可以直接帶上程序路徑: nssm install <servicename> <program> [<arguments>]
4. 服務管理
服務管理主要有啟動、停止和重啟,其命令如下:
-
啟動服務: nssm start <servicename>
-
停止服務: nssm stop <servicename>
-
重啟服務: nssm restart <servicename>
- 暫停/繼續服務
nssm pause <servicename>
nssm continue <servicename>
- 查看服務狀態:
nssm status <servicename>
當然,也可以使用系統自帶的服務管理器操作和使用系統的命令。
5. 常見命令
1)修改參數:
NSSM安裝的服務修改起來非常方便,命令如下:
nssm edit <servicename>
會自動啟動操作界面,直接更改即可。
2)服務刪除:
服務刪除可以使用如下命令之一:
-
nssm remove <servicename>
-
nssm remove <servicename> confirm
功能沒有大的區別,后面的命令是自動確認的,沒有交互界面。
參考資料:
- https://www.cnblogs.com/TianFang/p/7912648.html 【使用NSSM將exe封裝為服務】
- http://keenwon.com/1289.html 【使用nssm在windows服務器上部署nodejs】
- http://www.huangwenchao.com.cn/2016/10/windows-service-wrapper.html【在 Windows 將程序創建為自定義的服務,例如——Nginx】
- https://gogs.io/docs/installation/run_as_windows_service【Run As Windows Service】