wb.ouyang

毕竟几人真得鹿,不知终日梦为鱼

导航

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

摘自:【Linux】使用 systemctl 管理jar包启动_systemctl jar包-CSDN博客

一、摘要

  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

 

posted on 2025-05-05 13:02  wenbin_ouyang  阅读(227)  评论(0)    收藏  举报