CentOS7将SpringCloud服务配置成后台服务并设置开机自启的N种方式

1. 环境说明

* CentOS Linux release 8.2.2004 (Core)

2. 配置方式

2.1 运行shell脚本的方式

1)创建脚本

/usr/bin目录下创建脚本,比如我的脚本名为/usr/bin/ruoyi-gen.sh,内容如下:

#!/bin/bash
java -jar /root/xf-service/ruoyi-modules-gen-2.3.0.jar > /root/xf-service/ilogs/modules-gen-`date "+%Y-%m-%d"`.log 2>&1 &

然后为脚本设置执行权限chmod +x /usr/bin/ruoyi-gen.sh

2)添加服务

编辑/etc/systemd/system/ruoyi-gen.service(点 这里 了解/etc/systemd/system//usr/lib/systemd/system的区别),文件名最后跟你的服务相关,比如我的叫ruoyi-gen。内容大体如下:

[Unit]
Description=ruoyi-gen
After=network.target ali-nacos.target ali-sentinel.target ruoyi-gateway.target ruoyi-auth.target

[Service]
Type=forking
ExecStart=/usr/bin/ruoyi-gen.sh
ExecStop=/bin/bash -c "ps -ef | grep ruoyi-modules-system-2.3.0.jar | grep -v grep | awk '{print $2}' | xargs kill -9"

[Install]
WantedBy=multi-user.target

然后重载系统服务文件systemctl daemon-reload

参数说明:

Description: 就是当我们使用 systemctl list-units 时,会输出给管理员看的简易说明!当然,使用 systemctl status输出的此服务的说明,也是这个项目!

After: 说明此unit是在哪个daemon启动之后才启动的意思,指定了服务的启动顺序。

Type: 说明这个daemon启动的方式,会影响到ExecStart,默认值simple。

ExecStart: 就是实际执行此daemon的启动指令或脚本程序。

ExecStop: 就是实际执行此daemon的停止指令或脚本程序。

WantedBy: 说明此unit要挂载哪个target下面,大多的服务性质的unit都是附挂在multi-user.target下面。

3)服务管理

#启动
sudo systemctl start ruoyi-gen

#查看状态
sudo systemctl status ruoyi-gen

#停止服务
sudo systemctl stop ruoyi-gen

#重启服务
sudo systemctl restart ruoyi-gen

#开机自启
sudo systemctl enable ruoyi-gen

2.2 运行jar包的方式

1)添加服务

编辑/etc/systemd/system/ruoyi-system.service(点 这里 了解/etc/systemd/system//usr/lib/systemd/system的区别),文件名最后跟你的服务相关,比如我的叫ruoyi-system。内容大体如下:

[Unit]
Description=ruoyi-system
After=network.target ali-nacos.target ali-sentinel.target ruoyi-gateway.target ruoyi-auth.target

[Service]
Type=simple
ExecStart=java -jar /root/xf-service/ruoyi-modules-system-2.3.0.jar
StandardOutput=file:/root/xf-service/ilogs/modules-system.log
StandardError=file:/root/xf-service/ilogs/modules-system.log
SyslogIdentifier=ruoyi-modules-system

[Install]
WantedBy=multi-user.target

或者

[Unit]
Description=ruoyi-system
After=network.target ali-nacos.target ali-sentinel.target ruoyi-gateway.target ruoyi-auth.target

[Service]
Type=simple
ExecStart=/bin/bash -c "java -jar /root/xf-service/ruoyi-modules-system-2.3.0.jar > /root/xf-service/ilogs/modules-system.log"
SyslogIdentifier=ruoyi-modules-system

[Install]
WantedBy=multi-user.target

然后重载系统服务文件systemctl daemon-reload

2)服务管理

#启动
sudo systemctl start ruoyi-system

#查看状态
sudo systemctl status ruoyi-system

#停止服务
sudo systemctl stop ruoyi-system

#重启服务
sudo systemctl restart ruoyi-system

#开机自启
sudo systemctl enable ruoyi-system

注:这种方式没法动态生成日志文件名。

References:

  1. systemctl配置文件的设置项目简介
  2. 服务器下配置springboot项目开机自启(我没尝试这种方式);
  3. Centos 7 redis、tomcat、Spring Boot添加开机自启服务
  4. Running Spring Boot applications as systemd services on Linux
赞(1)
未经允许禁止转载:优米格 » CentOS7将SpringCloud服务配置成后台服务并设置开机自启的N种方式

评论 抢沙发

合作&反馈&投稿

商务合作、问题反馈、投稿,欢迎联系

广告合作侵权联系