centos systemd方式配置jar开机自启

将后端服务(一个 Java 应用程序)注册为 CentOS 上的 systemd 服务,可以让你方便地管理其启动、停止和重启。以下是详细步骤:

创建 systemd 服务单元文件

创建一个 systemd 服务单元文件,例如 /etc/systemd/system/demo.service:

powershell 复制代码
vim /etc/systemd/system/demo.service

在文件中添加以下内容:

powershell 复制代码
[Unit]
Description=Ruoyi Backend Service
After=network.target

[Service]
User=root
ExecStart=/usr/bin/java -Xms256m -Xmx512m -jar /home/wl_call_center/wl-admin.jar
SuccessExitStatus=143
Restart=on-failure
RestartSec=10s

[Install]
WantedBy=multi-user.target

[Unit] 部分
Description: 服务的简短描述,这里是"Ruoyi Backend Service",表明这是一个名为Ruoyi的后端服务。
After: 定义服务启动的顺序。这里After=network.target意味着这个服务将在网络目标达成后启动,确保网络功能可用。
[Service] 部分
User: 指定运行此服务的用户。这里设置为root,意味着服务将以root用户权限运行。出于安全考虑,通常不推荐以root用户运行服务,除非绝对必要。
ExecStart: 定义启动服务时执行的命令。这里ExecStart=/usr/bin/java -Xms256m -Xmx512m -jar /home/wl_call_center/wl-admin.jar指定了使用Java运行一个jar包,-Xms256m和-Xmx512m分别设置了Java虚拟机(JVM)的初始堆大小和最大堆大小为256MB和512MB。
SuccessExitStatus: 定义服务成功退出的状态码。这里SuccessExitStatus=143意味着当服务以状态码143退出时,systemd会认为服务是成功退出的。状态码143通常表示服务收到了SIGTERM信号并被正常终止。
Restart: 定义服务失败时的重启策略。这里Restart=on-failure意味着如果服务失败(即非成功退出状态),systemd将尝试重启服务。
RestartSec: 定义在尝试重启服务之前等待的时间。这里RestartSec=10s意味着如果服务失败,systemd将等待10秒后再尝试重启服务。
[Install] 部分
WantedBy: 定义服务的安装目标,即哪些目标(target)需要这个服务。这里WantedBy=multi-user.target意味着这个服务在安装时会被添加到multi-user.target(多用户目标),这是系统启动后的一个标准目标,提供了网络和多用户功能。

重新加载 systemd 配置

创建或修改服务单元文件后,需要重新加载 systemd 配置:

powershell 复制代码
sudo systemctl daemon-reload

启动和管理服务

执行命令:

  1. systemctl start demo.service
  2. systemctl status demo.service,出现如下图所示,代表成功了(我这边找了我之前的图)
powershell 复制代码
#开机自启
systemctl enable demo.service
#服务状态
systemctl status demo.service
#启动服务
systemctl start demo.service
#停止服务
systemctl stop demo.service
#重启服务
systemctl restart demo.service

日志查看

使用 journalctl 查看服务日志:

powershell 复制代码
journalctl -u demo.service -f
相关推荐
hfut028818 分钟前
第25章 interface
linux·服务器·网络
风123456789~4 小时前
【Linux专栏】显示或隐藏行号、批量注释
linux·运维·服务器
w***74405 小时前
SpringBoot项目如何导入外部jar包:详细指南
spring boot·后端·jar
只想安静的写会代码6 小时前
centos/ubuntu/redhat配置清华源/本地源
linux·运维·服务器
susu10830189116 小时前
ubuntu多块硬盘挂载到同一目录LVM方式
linux·运维·ubuntu
r***F2626 小时前
【漏洞复现】CVE-2019-11043(PHP远程代码执行漏洞)信息安全论文_含漏洞复现完整过程_含Linux环境go语言编译环境安装
linux·golang·php
smaller_maple7 小时前
linux问题记录1
linux·运维·服务器
v***8578 小时前
Ubuntu介绍、与centos的区别、基于VMware安装Ubuntu Server 22.04、配置远程连接、安装jdk+Tomcat
java·ubuntu·centos
报错小能手8 小时前
讲讲libevent底层机制
linux·服务器
代码AC不AC11 小时前
【Linux】计算机的基石:从冯·诺依曼体系结构到操作系统管理
linux·操作系统·冯诺依曼体系结构