Springboot學習之--將springboot註冊為windows系統服務
Springboot學習之–將springboot註冊為windows系統服務
最近做了一個專案,部署到客戶的伺服器上,執行狀況也良好。就是客戶的伺服器經常會重啟。然後客戶也不是it人員,重啟後重新啟動服務,就得使用命令:
jar -jar xxxx.jar
這對於不懂技術的人來說是個很複雜的事,於是決定打算修改修改,就有了下文。
一、編寫bat檔案啟動jar
1、新建一個名為fmstart.bat,開啟編輯,寫入以下內容
cd E:/springboot
java -jar fmstart-0.0.1-dev.jar
exit
2、然後儲存。ok,下次啟動時,可以直接點選fmstart.bat啟動了。至此愉快的玩耍了幾天。
你以為這樣就完了,過了幾天,客戶覺得點選bat啟動也太麻煩了,我想一開機就啟動。於是又得改。
二、windows啟動選單新增快捷方式啟動
1、win+R開啟執行視窗,輸入shell:startup;
2、將fmstart.bat,新建一個快捷方式,然後將快捷方式拷貝到啟動項檔案中。
重啟電腦,看到了熟悉的介面,啟動成功。
又過了幾天,客戶看到我們的cmd介面也不爽了,說能否不讓它出現,我容易誤把它關掉。
於是又得改改改。。。。。
三、使用winsw將springboot打包的jar註冊系統本地服務
【注】:本人只在Windows Server和win7測試,可以成功;win10會報錯。等待作者更新新版本。
1、先從github上下載winsw,下載地址https://github.com/kohsuke/winsw
我下載的是2.1.2版本,小夥伴們可下載最新的版本。
2、下載WinSW.NET4.exe,這個是支援.netframework4.0的版本,如果沒有.net4.0,請先安裝.net4.0,下載後改名成你想啟動的服務名字。比如:fmstart.exe
3、新建一個fmstart.xml檔案,編寫配置內容
<service>
<id>fmstart</id>
<name>fmstart</name>
<description >This is fmstart service.</description>
<!-- java環境變數 -->
<env name="JAVA_HOME" value="%JAVA_HOME%"/>
<executable>java</executable>
<arguments>-jar "E:\springboot\fmstart-0.0.1-dev.jar"</arguments>
<!-- 開機啟動 -->
<startmode>Automatic</startmode>
<!-- 日誌配置 -->
<logpath>%BASE%\log</logpath>
<logmode>rotate</logmode>
</service>
4、儲存fmstart.xml檔案,將fmstart.xml和fmstart.exe放到要啟動的jar的同級目錄下。
例如:E:\springboot\
5、開啟cmd,進入到E:\springboot;輸入fmstart.exe install安裝服務。
安裝後,輸入fmstart.exe start啟動服務;
相關命令如下:
除了install命令外,還有其它命令:
uninstall:刪除服務
start:啟動服務
stop:停止服務
restart:重啟服務
status:輸出當前服務的狀態
6、安裝成功後,win+R開啟執行,輸入services.msc,檢視是否有一個叫fmstart的服務。執行狀態是否為正在執行。
如果安裝成功後,服務狀態為正在執行,即可測試你的介面來了。
到此結束了,客戶每次啟動伺服器就會自己執行該服務,也不會有cmd小窗了。