bat启动脚本 springboot_奇葩需求:springboot项目注册为windows系统服务并设置开机自启...
關(guān)于springboot項(xiàng)目的部署與SSM(框架)部署war包到Tomcat下有所不同,比較明顯的是springboot打包為jar包,運(yùn)行則是執(zhí)行通過java -jar xxx.jar,不再需要放置在Tomcat下面運(yùn)行。
關(guān)于springboot項(xiàng)目部署相對于之前簡化了一些步驟,只需要在服務(wù)器中安裝好jdk環(huán)境,然后執(zhí)行java -jar xxx.jar就可以把項(xiàng)目跑起來,如下所示。
我們通過傳統(tǒng)--->改進(jìn)版--->改進(jìn)版plus--->最終版演變方式來一步步探討一下。
1、方式一(傳統(tǒng)版)
(1)假設(shè)這是window服務(wù)器,D盤中有一個名為demo-0.0.1-SNAPSHOT.jar項(xiàng)目
(2)打開cmd,運(yùn)行項(xiàng)目。
端口:9527
/:去項(xiàng)目名
(3)實(shí)際測試項(xiàng)目(demo-0.0.1-SNAPSHOT.jar)中的一個接口
(4)測試訪問
2、改進(jìn)版
以上方式運(yùn)行項(xiàng)目還需要手動進(jìn)入cmd輸入命令,相對來說比較麻煩。
下面我們可以通過一個bat腳本來實(shí)現(xiàn)這個功能。
(1)腳本內(nèi)容,比較簡單。
(2)執(zhí)行cmd腳本
(3)測試訪問
3、 改進(jìn)版plus
關(guān)于以上的兩種方式不能滿足開機(jī)自啟動需求。
假設(shè)服務(wù)器宕機(jī),重啟啟動服務(wù)還需要人工操作。
所以下面我們利用windows啟動菜單添加快捷方式來完成開機(jī)自啟的需求。 (1)win+R打開運(yùn)行窗口,輸入shell:startup
(2)將步驟2的腳本start.cmd新建一個快捷方式,然后將快捷方式拷貝到啟動項(xiàng)文件中。
(3)重啟電腦進(jìn)行測試,自行操作。
4、 最終版
關(guān)于以上的3種方式都有一個通病:
一直顯示著一個CMD窗口,而且這個窗口不能關(guān),關(guān)了程序就停了。
繼而引出了我們今天的主角:
可以將Windows上的任何一個程序注冊為服務(wù)的工具--winsw
關(guān)于winsw官方發(fā)言:
WinSW is an executable binary, which can be used to wrap and manage a custom process as a Windows service.
WinSW是一個可執(zhí)行的二進(jìn)制文件,可用于將自定義進(jìn)程包裝和管理為Windows服務(wù)。
下載地址: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改名成啟動服務(wù)名字(便于理解、使用)。
如:將WinSW.NET2.exe改成springbootDemo.exe (3)新建一個WinSW的xml配置文件 注意: XML文件要和程序名同名,所以這里名為springbootDemo.xml
(4)將我們的springboot項(xiàng)目(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>下面是配置文件用到的標(biāo)簽的簡單解釋
<!-- 這里的根元素必須是service節(jié)點(diǎn) --><service><!-- 指定在Windows系統(tǒng)內(nèi)部使用的識別服務(wù)的ID,唯一 --><id>springbootDemo</id><!-- 服務(wù)的簡短名稱,唯一 --><name>springbootDemo</name><!-- 描述 --><description>This is springbootDemo service.</description><!-- java環(huán)境變量 --><env name="JAVA_HOME" value="%JAVA_HOME%"/><!-- 指定要啟動的可執(zhí)行文件。 --><executable>java</executable><!-- 指定要傳遞給可執(zhí)行文件的參數(shù),即:java -jar "D:springboot-servicedemo-0.0.1-SNAPSHOT.jar" --><arguments>-jar "D:springboot-servicedemo-0.0.1-SNAPSHOT.jar"</arguments><!-- 開機(jī)啟動 --><startmode>Automatic</startmode><!-- 日志配置 --><logpath>%BASE%log</logpath><logmode>rotate</logmode></service>(6)打開cmd窗口,注冊服務(wù)
cd springboot-service
springbootDemo.exe install
安裝成功 (7)Win+R輸入services.msc
(8)可以看到我們剛剛的springboot項(xiàng)目已經(jīng)被注冊成一個window服務(wù)了
在這里我們可以對我們的springbootDemo項(xiàng)目進(jìn)行啟動、停止、手動開啟、自動開啟等等管理。
測試完成。 補(bǔ)充:
一些常用的命令
winsw install:安裝服務(wù)
winsw uninstall:卸載服務(wù)
winsw start:開啟服務(wù)
winsw stop:停止服務(wù)
winsw restart:重新啟動服務(wù)
winsw status:檢查服務(wù)的當(dāng)前狀態(tài)
作者:雙主雙機(jī)熱備來源:http://suo.im/5yPoPJ
總結(jié)
以上是生活随笔為你收集整理的bat启动脚本 springboot_奇葩需求:springboot项目注册为windows系统服务并设置开机自启...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python修改第三方库重写_Pytho
- 下一篇: 新建centos6虚拟机黑屏_虚拟机ce