使用NSSM安裝.exe文件成Windows服務(.bat文件操作)


寫在前面的話:

之前查到的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的環境變量就可以了

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM