1. 程式人生 > >Springboot學習之--將springboot註冊為windows系統服務

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小窗了。