springboot專案註冊為windows系統服務並設定開機自啟
關於springboot專案的部署與SSM(框架)部署war包到Tomcat下有所不同,比較明顯的是springboot打包為jar包,執行則是執行透過
java -jar xxx.jar
,不再需要放置在Tomcat下面執行。
關於springboot專案部署相對於之前簡化了一些步驟,只需要在伺服器中安裝好jdk環境,然後執行java -jar xxx。jar就可以把專案跑起來,如下所示。
我們透過
傳統--->改進版--->改進版plus--->最終版
演變方式來一步步探討一下。
1、方式一(傳統版)
(1)
假設這是window伺服器,D盤中有一個名為demo-0。0。1-SNAPSHOT。jar專案
(2)
開啟cmd,執行專案。
……
下圖所示:
埠:9527
/:去專案名
(3)
實際測試專案(demo-0。0。1-SNAPSHOT。jar)中的一個介面
(4)
測試訪問
2、改進版
以上方式執行專案還需要手動進入cmd輸入命令,相對來說比較麻煩。
下面我們可以透過一個bat指令碼來實現這個功能。
(1)
指令碼內容,比較簡單。
(2)
執行cmd指令碼
(3)
測試訪問
3、 改進版plus
關於
以上的兩種方式不能滿足開機自啟動需求
。
假設伺服器宕機,重啟啟動服務還需要人工操作。
所以下面我們利用
windows啟動選單新增快捷方式
來完成
開機自啟
的需求。
(1)
win+R開啟執行視窗,輸入
shell:startup
(2)
將步驟2的指令碼start。cmd新建一個快捷方式,然後
將快捷方式複製到啟動項檔案
中。
(3)
重啟電腦進行測試,自行操作。
4、 最終版
關於以上的3種方式都有一個通病:
一直顯示著一個CMD視窗,而且這個視窗不能關,關了程式就停了。
繼而引出了我們今天的主角:
可以將Windows上的任何一個程式註冊為服務的工具--winsw
關於winsw官方發言:
WinSW is an executable binary, which can be used to wrap and manage a custom process as a Windows service。
WinSW是一個可執行的二進位制檔案,可用於將自定義程序包裝和管理為Windows服務。
下載地址:https://github。com/kohsuke/winsw/releases
原始碼地址:https://github。com/kohsuke/winsw
(1)工具下載
以下兩個版本:
WinSW。NET4。exe:
支援。netframework4。0的版本,如果沒有4。0,請先安裝。net4。0。
如下圖:
這裡以
WinSW.NET2.exe
為例。
下載到桌面WinSW。NET2。exe
(2)
將WinSW。NET2。exe改名成
啟動服務
名字(便於理解、使用)。
如:
將WinSW.NET2.exe改成springbootDemo.exe
(3)
新建一個WinSW的xml配置檔案
注意:
XML檔案要和程式名同名,所以這裡名為
springbootDemo。xml
(4)
將我們的springboot專案(demo-0。0。1-SNAPSHOT。jar)和springbootDemo。xml檔案、springbootDemo。exe工具放置到同一個目錄中。
(5)
編寫springbootDemo。xml配置檔案,如下所示:
<service>
<id>springbootDemo</id>
<name>springbootDemo</name>
<description>This is springbootDemo service.</description>
<env name="JAVA_HOME" value="%JAVA_HOME%"/>
<executable>java</executable>
<arguments>-jar "D:\springboot-service\demo-0.0.1-SNAPSHOT.jar"</arguments>
<startmode>Automatic</startmode>
<logpath>%BASE%\log</logpath>
<logmode>rotate</logmode>
</service>
補充:
實際編寫中請除去以下注釋!!!
補充:
下面是配置檔案用到的標籤的簡單解釋
<!-- 這裡的根元素必須是service節點 -->
<!-- 指定在Windows系統內部使用的識別服務的ID,唯一 -->
<!-- 服務的簡短名稱,唯一 -->
<!-- 描述 -->
<!-- java環境變數 -->
<!-- 指定要啟動的可執行檔案。 -->
<!-- 指定要傳遞給可執行檔案的引數,
即:java -jar "D:\springboot-service\demo-0.0.1-SNAPSHOT.jar" -->
<!-- 開機啟動 -->
<!-- 日誌配置 -->
(6)
開啟cmd視窗,註冊服務
cd springboot-service
springbootDemo。exe install
安裝成功
(7)
Win+R輸入services。msc
(8)
可以看到我們剛剛的springboot專案已經被註冊成一個window服務了
在這裡我們可以對我們的springbootDemo專案進行啟動、停止、手動開啟、自動開啟等等管理。
測試完成。
補充:
一些常用的命令
winsw install:安裝服務
winsw uninstall:解除安裝服務
winsw start:開啟服務
winsw stop:停止服務
winsw restart:重新啟動服務
winsw status:檢查服務的當前狀態
最後感謝大家支援。