【Linux】使用 systemctl 管理jar包启动

7 篇文章 0 订阅

一、摘要

  1. 掌握Linux系统服务管理器 systemctl 的使用方法
  2. 使用 systemctl 启动java服务 + 设置开机自启
  3. 编写shell脚本,实现手动重启java服务

二、使用 systemctl 管理jar包启动

2.1 systemctl 常用命令

## 1. 查看服务状态
systemctl status 服务名.service

## 2. 启动服务
systemctl start 服务名.service

## 3. 停止服务
systemctl stop 服务名.service

## 4. 重启服务
systemctl restart 服务名.service

## 5. 重新加载 Systemd 配置(不重启服务)
systemctl daemon-reload

## 6. 禁用服务的自启动
systemctl disable 服务名.service

## 7. 启用服务的自启动
systemctl enable 服务名.service

## 8. 列出所有服务的状态(使用grep进行过滤)
systemctl list-units --type=service | grep 'java'

## 9. 查看服务的日志(需要 journalctl 命令)
journalctl -u 服务名.service

## 10. 查看服务的依赖关系
systemctl list-dependencies 服务名.service

## 11. 查看帮助文档
man systemctl

2.2 创建自启动服务

在 /etc/systemd/system/ 目录下,创建 java-demo.service:

[Unit]
Description=java-demo
After=network.target

[Service]
Type=simple
User=root
WorkingDirectory=/usr/local/java/java-demo
ExecStart=/usr/local/jdk/jdk11/bin/java -Dspring.profiles.active=test -jar  /usr/local/java/java-demo/app-demo.jar
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target

2.3 启动服务 + 设置开机自启

systemctl start java-demo.service

systemctl enable java-demo.service

2.4 手动重启服务

创建手动重启 shell 脚本

cd /usr/local/java/java-demo

vim restart.sh
#!/bin/bash  
# 停止 java 服务  
sudo systemctl stop java-demo
if [ $? -eq 0 ]; then  
    echo "正在停止已运行的 Java 程序..."  
else  
    echo "停止 Java 程序失败!"  
    exit 1  
fi  
  
# 等待一段时间确保服务已停止  
sleep 5
  
# 启动 java 服务  
sudo systemctl start java-demo
if [ $? -eq 0 ]; then  
    echo "正在启动 Java 程序..."  
else  
    echo "启动 Java 程序失败!"  
    exit 1  
fi
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值