寫在前面的話:
之前查到的nssm安裝Windows服務都是用 nssm install <servicename> ,但是會彈出窗口,需要填寫路徑參數
下面介紹一種,直接使用.bat命令就可以實現的安裝方式(本文使用的.exe文件是,.net core項目發布的一個網站項目,其他的應該也是一樣的原理)
1、下載nssm, download
2、解壓后,把nssm.exe文件復制到,發布完項目的文件夾里(就是放.exe文件的那個文件夾)
3、創建install.bat文件(名字隨便取都可以),文件中內容
@ echo off @echo 添加環境變量 set mypath=%~dp0 set path=%mypath%;%path% @echo 開始安裝【GDSM服務】 call nssm install GDSMService %~dp0GDSMPlateForm.exe echo wscript.sleep 5000 > delay.vbs cscript //nologo delay.vbs & del delay.vbs @echo 開始啟動【GDSM服務】 call nssm start GDSMService pause
4、右鍵install文件,創建快捷方式(快捷方式名字隨便取),修改為管理員權限打開
5、雙擊打開快捷方式,就會自動安裝服務,並開啟服務
6、查看服務
7、(如果需要)刪除服務,建議先關閉服務,再刪除
1)管理員身份打開cmd,刪除命令:sc delete 服務名 如:sc delete GDSMService
注意:
1)在執行nssm命令之前,一定要先添加nssm.exe的環境變量,否則會出下“找不到nssm命令”
2)安裝服務和啟動服務要使用call,不能用start或者不寫,否則也會出現“找不到nssm命令”,原因是使用start或者不寫,添加的環境變量沒有立即生效
(這里被坑了很久,之前都是不寫【nssm install GDSMService】,然后發現環境變量一直不生效,也試過重啟explorer,都不行)
3)添加環境變量(臨時環境變量,等服務安裝完成,環境變量不存)
@echo 添加環境變量
set mypath=%~dp0
set path=%mypath%;%path%
總結:nssm安裝服務不彈出彈窗的命令就是(可以直接在cmd中執行):nssm install GDSMService <路徑>,但是使用當前文件夾路徑的時候,就需要先添加環境變量
比方說:nssm install GDSMService C:\Windows\Setup\DSMPlateForm.exe 完全沒問題
但是,如果想要使用當前文件夾的路徑呢?
正常應該是這樣的, nssm install GDSMService %~dp0GDSMPlateForm.exe 然而就是不行(猜測原因:應該是nssm沒有在環境變量里面,沒有資格使用系統的變量%~dp0)
解決辦法:先添加nssm.exe的環境變量就可以了