SpringBoot 在Windows執行時,有個黑窗體,容易被不小心選中或關閉,或者伺服器重啟後,不能自動執行,註冊為 Windows Service服務 可實現 SpringBoot 專案在Windows 中隨系統自啟動。也不用擔心被關閉
下載 WinSW
https://github.com/winsw/winsw/releases
建立執行目錄
建立目錄,將有關檔案放入目錄下,
將 WinSW-x64.exe 重新命名為 自己的服務名,如 his-service.exe
如下圖:
his-service.xml
<?xml version="1.0" encoding="UTF-8"?>
<service>
<!-- 服務ID Windows 服務唯一標識 -->
<id>his-service</id>
<!-- 服務名稱 -->
<name>his-service</name>
<!-- 服務描述 -->
<description>HIS 介面同步服務</description>
<!-- jar包執行引數,如果沒設JAVA_HOME,指定執行程式的jdk位置 C:\Program Files\Java\jdk1.8.0_251\bin\java.exe-->
<executable>java</executable>
<!-- -jar之後是jar包名稱 -->
<arguments> -Xms1024m -Xmx2048m -Dfile.encoding=utf-8 -Dloader.path=D:\HisApi-lib -jar his-service.jar --server.port=22586 --spring.profiles.active=dev </arguments>
<!-- 日誌配置 -->
<logpath>D:\HIS\logs</logpath>
<!-- 日誌模式,預設為append追加模型,rotate為旋轉模式-->
<logmode>rotate</logmode>
</service>
- executable:啟動可執行檔案的全路徑,如果配置環境變數,則可以簡寫,所有這裡填寫Java
- arguments:命令執行的引數
- logpath:配置日誌路徑
- logmode:日誌輸出模式,預設為append,官方文件
- append:(追加模式,其特點是將日誌檔案全部輸出在一個檔案中,這個檔案可能會越來越大。
- rotate:(旋轉模式,推薦)當日志檔案大小達到10兆(預設值),winsw會將日誌重新輸出到另外一份日誌檔案,最多保留8個(預設值)。
- reset:(重置模式)每次重啟服務都會重置日誌檔案。
- none:(忽略模式)幾乎不會生成日誌檔案。
安裝服務
CMD(管理員模式)
D:\HIS>his-service.exe install
D:\HIS>services.msc
安裝成功後到 服務中,找到對應的服務,右擊啟動
更新服務
- 停止服務
- 替換目錄下的jar檔案
- 啟動服務
刪除服務
D:\HIS>sc delete his-service
注意
his-service 替換成自己的應用服務名
同類產品有:NSSM 使用介紹:
NSSM 將.NetCore 做成 Windows 服務 - JAVA 同理、
NSSM 將jar包安裝為windows服務-bat啟動方式
感謝,@yi念之間 提供 NSSM 資訊