bat启动脚本 springboot_奇葩需求: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-servicedemo-0.0.1-SNAPSHOT.jar"</arguments><startmode>Automatic</startmode><logpath>%BASE%log</logpath><logmode>rotate</logmode></service>下面是配置文件用到的標簽的簡單解釋
<!-- 這里的根元素必須是service節點 --><service><!-- 指定在Windows系統內部使用的識別服務的ID,唯一 --><id>springbootDemo</id><!-- 服務的簡短名稱,唯一 --><name>springbootDemo</name><!-- 描述 --><description>This is springbootDemo service.</description><!-- java環境變量 --><env name="JAVA_HOME" value="%JAVA_HOME%"/><!-- 指定要啟動的可執行文件。 --><executable>java</executable><!-- 指定要傳遞給可執行文件的參數,即:java -jar "D:springboot-servicedemo-0.0.1-SNAPSHOT.jar" --><arguments>-jar "D:springboot-servicedemo-0.0.1-SNAPSHOT.jar"</arguments><!-- 開機啟動 --><startmode>Automatic</startmode><!-- 日志配置 --><logpath>%BASE%log</logpath><logmode>rotate</logmode></service>(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:檢查服務的當前狀態
作者:雙主雙機熱備來源:http://suo.im/5yPoPJ
總結
以上是生活随笔為你收集整理的bat启动脚本 springboot_奇葩需求:springboot项目注册为windows系统服务并设置开机自启...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python修改第三方库重写_Pytho
- 下一篇: opencv 训练人脸对比_【项目案例p