原理:使用apache的Procrun軟件,自主註冊windows服務,需指定啓動腳本和停止腳本。
大致步驟如下:
1.下載Procrun: http://archive.apache.org/dist/commons/daemon/binaries/windows/ 選擇最新的版本,如commons-daemon-1.2.2-bin-windows.zip
2.解壓zip包
3.準備好zookeeper/nacos的資源,解壓,其中nacos的下載地址:https://github.com/alibaba/nacos/releases ,zookeeper的下載地址:https://zookeeper.apache.org/releases.html
4.準備好zookeeper/nacos的啓動腳本和停止腳本,其中nacos自帶都有,zookeeper自帶啓動腳本,卸載腳本需要自己寫。
5.分別準備好zookeeper和nacos的bat腳本,作用是 調用procrun的srv程序,將zookeeper和nacos註冊成服務,需要準備兩份,一份註冊服務腳本,一份卸載服務腳本。
6.注意點,如果指定了日誌文件路徑,需要自己提前創建好路徑的文件夾
7.執行安裝服務腳本,安裝即可,不需要服務了,可以直接執行卸載服務腳本。
8.procrun的一些使用參數介紹:http://commons.apache.org/proper/commons-daemon/procrun.html
實際操作例子:
1.新建文件夾:source,將procrun解壓到該文件夾下
2.解壓nacos1.2.1爲nacos文件夾下
3.解壓zookeeper3.4.6爲zookeeper-3.4.6文件夾下
4.將procrun的prunsrv.exe分別複製到zookeeper-3.4.6 /nacos文件夾下,重命名爲 zookeeper-srv.exe和nacos-srv.exe
5.將procrun的prunmgr.exe分別複製到zookeeper-3.4.6/nacos文件夾下,重命名爲MyZookeeper.exe和Nacos.exe,(文件名爲服務名,這樣才能在服務安裝後,可以直接雙擊管理)
6.nacos的啓動腳本爲bin路徑下的startup.cmd,停止腳本爲shutdown.cmd
7.zookeeper的啓動腳本爲bin路徑下的zkServer.cmd,停止腳本爲自己寫一個:
8.編寫zkServerStop.cmd,內容如下,保存在bin路徑下
@echo off
cd..
set CDIR=%CD%
set ZOOKEEPER_SERVICE=zookeeper
set ZOOKEEPER_HOME=%CDIR%
setlocal
TASKLIST /svc | findstr /c:"%ZOOKEEPER_SERVICE%" > %ZOOKEEPER_HOME%\zookeeper_svc.pid
FOR /F "tokens=2 delims= " %%G IN (%ZOOKEEPER_HOME%\zookeeper_svc.pid) DO (
@set zkPID=%%G
)
taskkill /PID %zkPID% /T /F
del %ZOOKEEPER_HOME%/zookeeper_svc.pid
endlocal
pause
9.至此,知道了zookeeper和nacos的啓動停止腳本
10.爲zookeeper和nacos編寫服務安裝(註冊)腳本,服務卸載腳本
10.1:zookeeper安裝服務腳本,install.bat,放在zookeeper-3.4.6路徑下
@echo off
cd.
set CDIR=%CD%
cd..
set BASEDIR=%CD%
set SRV=%CDIR%\zookeeper-srv.exe
set ZOOKEEPER_HOME=%CDIR%
set NAME=MyZookeeper
"%SRV%" //IS//%NAME% --DisplayName=%NAME% --Description=%NAME% --Startup=manual --StartMode=exe --StartPath="%ZOOKEEPER_HOME%" --StartImage="%ZOOKEEPER_HOME%\bin\zkServer.cmd" --StopPath="%ZOOKEEPER_HOME%" --StopImage="%ZOOKEEPER_HOME%\bin\zkServerStop.cmd" --StopMode=exe --StopTimeout=10 --LogPath="%ZOOKEEPER_HOME%\log" --LogPrefix="zookeeper-log" --PidFile=zookeeper.pid --LogLevel=Info --StdOutput=auto --StdError=auto
echo install success
pause
10.2: zookeeper服務卸載腳本,uninstall.bat,放在zookeeper-3.4.6路徑下
@echo off
cd.
set CDIR=%CD%
cd..
set BASEDIR=%CD%
set SERVICE_NAME=MyZookeepers
set SRV=%CDIR%\zookeeper-srv.exe
%SRV% //DS//%SERVICE_NAME%
echo finish uninstall
pause
10.3: nacos的啓動和卸載腳本和上面基本一致,唯一不同就是改下部分參數,服務註冊腳本install.bat
@echo off
cd.
set CDIR=%CD%
cd..
set BASEDIR=%CD%
set SRV=%CDIR%\nacos-srv.exe
set NACOS_HOME=%CDIR%
set NAME=Nacos
"%SRV%" //IS//%NAME% --DisplayName=%NAME% --Description=%NAME% --Startup=manual --StartMode=exe --StartPath="%NACOS_HOME%" --StartImage="%NACOS_HOME%\bin\startup.cmd" --StopPath="%NACOS_HOME%" --StopImage="%NACOS_HOME%\bin\shutdown.cmd" --StopMode=exe --StopTimeout=10 --LogPath="%NACOS_HOME%\log" --LogPrefix="nacos-log" --PidFile=nacos.pid --LogLevel=Info --StdOutput=auto --StdError=auto
echo install success
pause
10.4:nacos服務卸載腳本: uninstall.bat
@echo off
cd.
set CDIR=%CD%
cd..
set BASEDIR=%CD%
set SERVICE_NAME=Nacos
set SRV=%CDIR%\nacos-srv.exe
%SRV% //DS//%SERVICE_NAME%
echo finish uninstall
pause
11.安裝腳本和卸載腳本準備好了,下一步直接執行對應的安裝腳本即可,但在執行之前需要注意,以上腳本都配置了日誌文件路徑爲log,需要手工爲各自路徑創建log文件夾,防止報錯。
12.雙擊執行install.bat腳本
13.執行成功,在windows服務中查找對應的服務,以上腳本將MyZookeeper和Nacos註冊到windows服務中,找到對應的服務,點擊啓動即可。
14.也可以直接在剛纔複製過來的路徑中的MyZookeeper.exe和Nacos.exe 文件,直接雙擊執行,便可管理軟件。
15.如需改成開機自啓,操作服務管理程序即可
16.注意:停止服務的時候會彈窗報錯,但是服務已經正常停止了,不需要在意。
總結:
procrun軟件可以將任意類似的有啓動程序和停止程序的服務註冊成windows服務,也可以將jar包註冊成windows服務,只要好好的利用procrun的參數即可。
以上nacos和zookeeper只是一個示例,更多功能自己摸索哈
附上相關鏈接:
https://download.csdn.net/download/chemphone/12492524
這裏將上面的東西上傳到了csdn資源裏,需要的直接下載,理論上可以直接使用。不想下載的還是按照我上述的步驟一步一步來吧,結果是一樣的,還省了一個積分,自己動手豐衣足食,有問題下方留言。