奇葩需求:springboot项目注册为windows系统服务并设置开机自启
程序员的成长之路
互联网/程序员/技术/资料共享
关注
阅读本文大概需要 4 分钟。
作者:双主双机热备
来源:http://suo.im/5yPoPJ
关于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-service\demo-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-service\demo-0.0.1-SNAPSHOT.jar" --><arguments>-jar "D:\springboot-service\demo-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:检查服务的当前状态
<END>
推荐阅读:
网友:看到 955 不加班的公司名单,我酸了...
如何设计一个超级牛逼的 Feed 流系统
5T技术资源大放送!包括但不限于:C/C++,Linux,Python,Java,PHP,人工智能,单片机,树莓派,等等。在公众号内回复「2048」,即可免费获取!!
微信扫描二维码,关注我的公众号
朕已阅
奇葩需求:springboot项目注册为windows系统服务并设置开机自启相关推荐
- bat启动脚本 springboot_奇葩需求:springboot项目注册为windows系统服务并设置开机自启...
关于springboot项目的部署与SSM(框架)部署war包到Tomcat下有所不同,比较明显的是springboot打包为jar包,运行则是执行通过java -jar xxx.jar,不再需要放置 ...
- java注册系统服务_奇葩需求:springboot项目注册为windows系统服务并设置开机自启...
关于springboot项目的部署与SSM(框架)部署war包到Tomcat下有所不同,比较明显的是springboot打包为jar包,运行则是执行通过java -jar xxx.jar,不再需要放置 ...
- windows中如何设置开机自启tomcat,nginx,jdk等应用服务的解决办法
下面使用tomcat为例 一般手动启动tomcat的话,需要找到startup.bat双击启动.所以下面先找到此程序. 找到tomcat的安装目录,点击bin文件夹进入 然后找到startup.bat ...
- windows下tomcat设置开机自启
本帖可能比较啰嗦,但是做到本人所知的尽可能详细. https://blog.csdn.net/kangcool_sn/article/details/85069434 一.安装JDK 根据自己操作系统 ...
- linux java jar包项目如何安装在win系统 设置开机自启等配置 - jar包配置不用改
大家都知道 linux 是没有c盘或者d盘 我们部署linux项目的时候 , java 上传的文件都是在当前项目的目录下, 我们需要把项目部署到win系统的时候 在不改其jar包的配置下,在指定盘 ...
- 怎样把任意exe程序注册成windows系统服务(手动注册服务)
怎样把任意exe程序注册成windows系统服务(手动注册服务) 1. 要实现这个功能要用到微软提供的两个小工具"instsrv.exe"和"srvany.exe&quo ...
- 将frpc注册成windows系统服务
将frpc注册成windows系统服务 将frpc注册成windows系统服务,让frpc随着系统启动而自动启动 环境:配置好的可以使用的frpc环境 .装好choco的windows(不会给wind ...
- 潇洒郎: Python exe程序注册为windows 系统服务
1. 将python脚本生成exe文件 安装打包工具: pip install pyinstaller 生成exe文件: pyinstaller -F dial.py 如果想noconsole 则加参 ...
- 使用NSSM将agent注册为windows系统服务说明
使用NSSM将agent注册为windows系统服务说明 1.下载nssm-2.24-101-g897c7ad.zip 2.解压nssm-2.24-101-g897c7ad.zip,比如我们解压到C盘 ...
最新文章
- 2162112375 Week04-面向对象设计与继承
- 博客园成立了管理团队
- 技术主管和架构师的职责
- 迪杰斯特拉--- 模板(求最短路径/输出路径/所有路径都可以走的做法)
- ReactJS入门之前端开发的演变
- Python3 实现建造者模式
- Python计算IV值
- 计算广告学涉及的学科与技术
- 阿里云移动测试-远程真机篇
- 十二进制转二进制--2018
- Creational.Builder建造者模式:构造流程和具体实现的分离
- 001Diamond学习001概述
- 选择高防空间应该注意什么?
- Java中按字母顺序对字符串字符进行排序的4种不同方法
- poj 2044 weather forcast
- 计算机需要那些高中数学知识点,高中数学-知识点总结-最全版.doc
- 美团算法 SP | 三面复盘
- 细胞培养常见问题分析
- exercise code 8
- rinetd 在生产环境要谨慎使用
热门文章
- 荣耀10的android在哪,荣耀10详细配置参数,你想知道的都在这里
- linux c语言修改文件的时间属性,请教一个关于用标准C语言修改文件创建时间、修改时间和访问时间的问题。...
- 【python】公考数学
- 余数和除数以及被除数的关系
- 【国产时钟缓冲器芯片选型】
- 教你使用 Python 获取美国重要经济指标数据
- 使用Mac的浏览器调试ios设备上的cordova app
- v-distpicker 插件只要省市
- html点击图标出现日历,日历图标的纯CSS实现
- 草根创业回忆录一: 踏出了第一步的时候...