当前位置: 首页 > news >正文

Linux 启动Jar脚本设置开机自启【超级详细】

Linux 启动Jar脚本&&设置开机自启【超级详细】

  • 概要
    • 服务器开机自启
    • 服务重启脚本

概要

最近在Linux服务器中部署了一个项目(单机版),每次更新服务的时候需要用到好几个命令,停止服务,再重启,并且服务器突然重启后,还需要人工重启服务,非常繁琐,下面展示了两个脚本的写法。。

服务器开机自启

  1. 检查系统是否安装jdk;
java -version

在这里插入图片描述

  1. 查看jdk安装位置
whereis java

在这里插入图片描述

  1. 编写脚本restart_yhfw.service
[Unit]
Description=Ruoyi Admin Service
After=network.target

[Service]
Type=simple
# 修改下面的java位置和你的jar包位置
ExecStart=/usr/local/jdk1.8.0_341/bin/java -jar /usr/local/project/yhfw/ruoyi-admin.jar --spring.config.location=/usr/local/project/yhfw/application.yml
ExecStop=/bin/kill -TERM $MAINPID
Restart=no
User=root
# 修改下面的java位置
Environment="JAVA_HOME=/usr/local/jdk1.8.0_341"
Environment="PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

[Install]
WantedBy=multi-user.target
  1. 添加脚本至你的服务器

将以上脚本放至到目录/etc/systemd/system下面

在这里插入图片描述

  1. 给以上脚本添加权限
chmod 777 restart_yhfw.service
  1. 重启服务器,查看自己的jar服务是否启动
    在这里插入图片描述

服务重启脚本

  1. 编写脚本restart_yhfw.sh

重点!!!重点!!!重点!!!需要将以下路径和jar包名称更换成你自己的

#!/bin/bash

# 定义变量(更换你的jar包路径)
JAR_FILE="/usr/local/project/yhfw/ruoyi-admin.jar"
CONFIG_FILE="/usr/local/project/yhfw/application.yml"
LOG_FILE="/usr/local/project/yhfw/nohup.out"

# 检查JAR文件是否存在
if [ ! -f "$JAR_FILE" ]; then
    echo "Error: JAR file does not exist at $JAR_FILE"
    exit 1
fi

# 检查是否有读取权限
if [ ! -r "$JAR_FILE" ]; then
    echo "Error: No read permission for JAR file at $JAR_FILE"
    exit 1
fi

# 检查配置文件是否存在
if [ ! -f "$CONFIG_FILE" ]; then
    echo "Error: Configuration file does not exist at $CONFIG_FILE"
    exit 1
fi

# 检查是否有读取权限
if [ ! -r "$CONFIG_FILE" ]; then
    echo "Error: No read permission for configuration file at $CONFIG_FILE"
    exit 1
fi

# 获取进程ID
PID=$(ps -ef | grep "${JAR_FILE}" | grep -v "grep" | awk '{print $2}')

# 检查是否有进程在运行
if [ -n "$PID" ]; then
    echo "Stopping ruoyi-admin.jar with PID $PID..."
    kill -15 $PID
    sleep 5 # 给出一些时间让进程优雅地关闭
    if ps -p $PID > /dev/null; then
        echo "Process did not stop gracefully, forcing shutdown."
        kill -9 $PID
    else
        echo "ruoyi-admin.jar stopped successfully."
    fi
else
    echo "ruoyi-admin.jar is not running. Starting it now."
fi

# 启动应用
echo "Starting ruoyi-admin.jar with configuration from $CONFIG_FILE..."
nohup java -jar -Dspring.config.location=file:$CONFIG_FILE ${JAR_FILE} > ${LOG_FILE} 2>&1 &
if [ $? -eq 0 ]; then
    echo "ruoyi-admin.jar started successfully."
else
    echo "Failed to start ruoyi-admin.jar. Check the log file for more details."
fi

# 打印nohup的日志
echo "Printing yhfw log..."
tail -f /usr/local/project/yhfw/ruoyi-admin.log
  1. 给脚本添加权限
chmod 777 restart_yhfw.sh
  1. 执行脚本测试
sh restart_yhfw.sh

下一篇:单机版本服务如何做到无感更新

相关文章:

  • 蓝桥刷题note9(分发饼干,最长回文子串)
  • Windows server 2022域控制服务器的配置
  • 【Java基础-50.1】Java线程阻塞详解:类型、实现与案例分析
  • 1.1编译器概述笔记(努力持续记笔记)
  • 【江西棒垒球】如何参加奥运会·棒球5号位
  • Win98模拟器(安卓):重温经典,一键怀旧
  • 基于Spring Boot的供应商管理系统的设计与实现(LW+源码+讲解)
  • visual studio 使用ssh连接wsl失败原因
  • 神聖的綫性代數速成例題18. 正交變換、歐幾里得空間的同構、實對稱矩陣的正交相似對角化的應用”
  • 计算机网络精讲day2———计算机网络的性能指标(下)
  • 55岁了,可以用AIGC创作吗?
  • Android在kts中简单使用AIDL
  • SQLite Delete 语句详解
  • 第十六届蓝桥杯康复训练--7
  • Python实现deepseek接口的调用
  • 中间件漏洞—Jboss
  • 信号的漏桶实现
  • 神聖的綫性代數速成例題20. 廣義逆矩陣的概念與計算、線性空間上的雙線性函數及其性質、歐幾里得空間中正交投影的應用
  • 牛客周赛84 题解 Java ABCDE 仅供参考
  • Window对象与本地存储详解
  • 从“土”到“潮”,唢呐何以“圈粉”年轻人
  • 来论|受美国“保护”,日本民众要付出什么代价?
  • 五大国货美妆去年业绩分化:珀莱雅百亿营收领跑,上海家化转亏
  • 马克思主义理论研究教学名师系列访谈|杜玉华:马克思主义是“认识世界”和“改变世界”的思维工具
  • “上博号”彩绘大飞机今日启航:万米高空传播中国古代文化
  • 阿斯利康中国区一季度收入增5%,或面临最高800万美元新罚单