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

CentOS7.6上实现Spring Boot(JAR包)开机自启

前言

Linux自启(或开机自启)指的是在Linux系统启动时自动运行特定的程序或脚本。当计算机启动时,操作系统会按照一定的顺序加载系统服务和配置,其中包括自动启动一些应用程序或服务。这些应用程序或服务会在系统启动后自动运行,以提供特定的功能或服务。

开机自启的好处在于可以在系统启动时自动恢复之前的工作状态,减少手动干预,同时确保特定的服务或应用程序始终处于运行状态,提供持续的服务。

sh脚本是指Shell脚本,是一种在Unix/Linux系统上运行的脚本文件,通常使用Shell编程语言来编写。Shell是操作系统的一种命令行解释器,它可以用来执行操作系统命令、管理文件系统、处理文本数据等。

Shell脚本是一个纯文本文件,以.sh扩展名结尾。它包含一系列Shell命令和控制结构,用于自动化完成一系列任务。通过编写Shell脚本,可以将一系列复杂的操作和任务集中到一个文件中,并通过运行脚本来实现这些操作,从而简化了操作过程并提高了效率。

一、创建工作目录

Spring Boot是一款方便开发者快速搭建基于Spring的应用程序的工具。而Spring Boot可以方便的加载外部配置文件,只需要将配置文件放在指定的位置即可。具体实现如下:

mkdir -p /home/java-server/test-demo

2、创建启动脚本

进入jar目录:

cd  /home/java-server/test-demo

创建脚本文件:

vim start.sh

启动脚本内容:

#!/bin/sh
export LANG="en_US.UTF-8"
cd /home/java-server/test-demo
runMessage=`ps aux | grep \`cat pidfile.txt\``
projectStartCommand="/usr/local/java/jdk1.8.0_131/bin/java -jar xxx.jar"
if [[ $runMessage == *$projectStartCommand* ]]
thenecho "Application has starting ,restarting..."kill -9 `cat pidfile.txt`nohup /usr/local/java/jdk1.8.0_131/bin/java -jar xxx.jar -java.tmp.dir=/home/java-server/test-demo/temp >/dev/null 2>&1 & echo $! > pidfile.txt
elseecho "Application has stopped ,starting..."nohup /usr/local/java/jdk1.8.0_131/bin/java -jar xxx.jar -java.tmp.dir=/home/java-server/test-demo/temp >/dev/null 2>&1 & echo $! > pidfile.txt
fi
  • 脚本中/home/java-server/test-demo就是jar包所在的,可以根据实际情况定。
  • xxx.jar为实际的jar包名称。
  • /usr/local/java/jdk1.8.0_131/bin/java为jdk环境所在路径。

3、创建停止脚本

进入jar目录

 cd  /home/java-server/test-demo

创建脚本文件:

vim stop.sh

启动脚本内容:

#!/bin/sh
cd /home/java-server/test-demo
PID=$(cat pidfile.txt)
if [ ${PID} ]; 
thenecho 'Application is stpping...'echo kill $PID DONEkill $PID
elseecho 'Application is already stopped...'
fi

4、设置开机自启

进入system:

# 进入system
cd /usr/lib/systemd/system/ 

创建自启脚本:

vim xxx.service

xxx.service为脚本的名称,一般来就是jar包前缀名称一致,比如:test-demo.service

内容如下:

[Unit]
Description=xxx
After=network.target[Service]
Type=forking
ExecStart=/home/java-server/test-demo/start.sh
ExecStop=/home/java-server/test-demo/stop.sh
PrivateTmp=true[Install]
WantedBy=multi-user.target
  • Description:描述,一般为项目名称
  • ExecStart:开启脚本位置
  • ExecStop:停止脚本位置

设置脚本权限:

systemctl daemon-reload
systemctl enable xxx.service

启动|停止命令:

# 启动
systemctl start xxx# 停止
systemctl stop xxx

xxx就是xxx.service的前缀。

http://www.lryc.cn/news/163163.html

相关文章:

  • Java开发之框架(spring、springmvc、springboot、mybatis)【面试篇 完结版】
  • QT人脸识别知识
  • 熟悉Redis6
  • ip地址会随网络变化而变化吗
  • QT连接服务器通信,客户端以及服务器端
  • Vuex仓库的创建
  • C++中的红黑树
  • SQL语法知识回顾
  • Java基础二十七(泛型)
  • Python入门教程36:urllib网页请求模块的用法
  • LeetCode 每日一题 2023/9/4-2023/9/10
  • C# Onnx Yolov8 Seg 分割
  • Postman接口测试流程
  • 探索GreatADM:如何快速定义监控
  • C# 参数名加冒号,可以打乱参数顺序
  • AVL树 模拟实现(插入)
  • Java面试整理(三)《JavaSE》
  • LeetCode 1282. Group the People Given the Group Size They Belong To【哈希表】1267
  • Vue2项目练手——通用后台管理项目第八节
  • leetcode872. 叶子相似的树(java)
  • 【Linux从入门到精通】信号(初识信号 信号的产生)
  • Golang综合项目实战(一)
  • springmvc 获取项目中的所有请求路径
  • 【React学习】React高级特性
  • 如何在Windows系统搭建filebrowser私人网盘并实现在外网访问本地内网
  • 蓝桥杯官网练习题(算式900)
  • 【C++从入门到精通】第1篇:C++基础知识(上)
  • liunx系统无sudo或管理员权限安装rar解压安装包
  • 浅析目标检测入门算法:YOLOv1,SSD,YOLOv2,YOLOv3,CenterNet,EfficientDet,YOLOv4
  • C++:类和对象(三)