本文章提供在Linux下,window下以服务方式进行资源运行
参考: Spring Boot服务化运行
Linux
说明:
1.基于redhat系列(如:centos)
2.基于systemctl进行服务管理
3.更多参考
Linux服务编写
1.创建文件夹管理jar
格式:
xxxApp:
xxxApp.jar
startup.sh(执行脚本)
shutdown.sh(停止脚本)
reload.sh(重启加载)
2.完善startup.sh/shutdown.sh/reload.sh
startup.sh 如:
#!/bin/sh
JAVA_HOME=/vosdata/jdk18
CLASSPATH=$JAVA_HOME/lib/
PATH=$PATH:$JAVA_HOME/bin
export PATH JAVA_HOME PATH
nohup java -jar /vosdata/test/demoApp.jar > /dev/null 2>&1 &
3.编写开机服务
注意:对于编写的开机自启动命令,是无法读取/etc/profile下的环境变量配置,需要使用绝对路径进行命令的查找
如: 编写demo.service
cd /usr/lib/systemd/system
vim demo.service
[Unit]
Description=服务描述
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
ExecStart=启动执行路径
#ExecReload=/ 重启加载
#ExecStop=/停止服务
PrivateTmp=true
[Install]
WantedBy=multi-user.target
4.设置服务类型并检查
systemctl daemon-reload #重新加载所有service服务
systemctl enable demo.service #开机启动该service
systemctl is-enabled demo.service #查看该service是否开机启用
Window
参考SpringBoot推荐winsw
使用步骤
- 1.下载winsw.exe
url: http://repo.jenkins-ci.org/releases/com/sun/winsw/winsw/
版本说明:
v1:
老版本、维护状态[建议:不使用]
v2:
针对.NET Framework 4.0的新的可执行程序包。 仍支持.NET Framework 2.0。
扩展引擎,允许扩展包装器的行为。 及其几个扩展(共享目录映射器,Runaway Process Killer)
新版本托管:GitHub和NuGet
将日志记录子系统迁移到Apache log4net
Bug修复
新版本兼容旧版本相关配置
- 2.准备可执行jar资源配置
参考Spring Boot官网文档提供配置
<build>
<finalName>XXXApp</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
<configuration>
<finalName>XXXApp</finalName>
<mainClass>xxxx.xxxx.XXXApp</mainClass>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
执行mvn clean package
- 3.winsw 服务配置文件准备(xxx.xml) 参考:
目录结构说明:
--xxxWindowService
xxxApp.jar(Spring Boot 可执行jar)
XXXApp.exe(winsw重命名与需要服务化的jar名称一致)
xxxApp.xml(winsw打包为服务的描述文件)
配置文件说明:
<service>
<id>安装成window后的服务名唯一</id>
<name>服务名字的简写名称唯一</name>
<description>服务描述</description>
<env name="JENKINS_HOME[环境变量]" value="%BASE%"/>
<executable>java(执行命令)</executable>
<arguments>-Xrs -Xmx256m -jar "%BASE%\jenkins.war" --httpPort=8080(参数)</arguments>
<logmode>rotate(日志记录模式)</logmode>
</service>
- 4.winsw 相关命令使用
注意: 需要在管理员权限下进行执行操作(不然会报权限不够)
格式:
winsw.exe 命令
install: 安装服务
uninstall:卸载服务
start:启动服务
stop:停止服务
restart:重启服务
status:查看服务状态
- 5.多个服务注册配置
参考:3.winsw 服务配置文件准备(xxx.xml)
创建多个服务的文件目录,如
xxxxServices
AService:
A.jar
A.exe
A.xml
BService:
B.jar
B.exe
B.xml
CService:
C.jar
C.exe
C.xml