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
相关推荐
一技安身6 小时前
【信创】银河麒麟V10、统信UOS解压7Z文件
linux·运维·服务器
奔跑的架构师6 小时前
[A-50]ARMv9/v8-DVFS系统架构
linux·arm开发·架构·系统架构·arm
迷途呀6 小时前
CI/CD 自动化部署实践:让代码提交后自动上线
linux·运维·nginx·ci/cd·自动化
赴生-7 小时前
Liunx 操作系统 进程概念(上)
linux
binqian7 小时前
【linux】OpenSSH升级文档
linux·运维·网络
吴声子夜歌7 小时前
Shell编程——if条件语句
linux·运维·shell
Dawn-bit8 小时前
Linux 运维基础扩展:跳板机、堡垒机与物理服务器全流程
linux·运维·服务器·云计算·运维开发
新时代牛马8 小时前
Linux 定时任务:crontab、anacron 与systemd timer
linux·运维·服务器
mounter6258 小时前
Linux 7.2 引入更灵活的块设备错误注入机制
linux·linux kernel·kernel·disk·error injection
cpolar技术支持8 小时前
Docker 容器启动失败怎么查?端口、日志、权限与网络排障完整教程
linux·docker·容器·cpolar·网络排障