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

在linux注册服务并开机启动springboot程序

1.本文说明

配置springboot的jar包开机自启动,centos和ubuntu都可以使用

本文以/home/java/mes.jar包启动方式为例

2.启停脚本

(1)启动(重启)脚本

进入/data/目录

cd /data/

vim  mes_start.sh

此处启动和重启都使用了这个脚本,因为其中包含了此进程存在就先杀掉的处理

日志文件保存在   /data/mes_nohup.log

#!/bin/sh
# jar包路径
APP1_NAME=/home/java/mes.jar

# 查询是否有原进程
tpid1=`ps -ef|grep $APP1_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
# 如果此进程已经启动,则先杀掉
if [ $tpid1 ]; then
kill -9 $tpid1
fi

# 启动项目jar包,java命令写成了绝对路径,因为系统启动的时候是不识别环境变量的
# 日志文件也写成了绝对路径,不然日志会输出在init.d目录
nohup java -jar $APP1_NAME --spring.profiles.active=prd > /data/mes_nohup.log 2>&1 &
(2)停止脚本(kill)

进入/data/目录

cd /data/

vim mes_stop.sh

直接暴力杀掉进程,有更优雅的方式大家可以自行解决

#!/bin/sh
# jar包路径
APP1_NAME=/home/java/mes.jar

# 查询是否有原进程
tpid1=`ps -ef|grep $APP1_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
# 如果此进程已经启动,则先杀掉
if [ $tpid1 ]; then
kill -9 $tpid1
fi

(3) 授权

chmod -R 777 mes_start.sh

chmod -R 777 mes_stop.sh

3.注册服务

(1)先切换到系统目录
cd /etc/systemd/system

(2)注册服务脚本
vim mes.service
内容参考:注意启动脚本的目录位置/data/,依赖项如果不需要mysql,就改成After=NetworkManager.service

[Unit]
Description=data server
# 依赖项,在这些程序之后启动
After=NetworkManager.service mysqld.service

[Service]
Type=forking
# 配置启动脚本
ExecStart=/data/start.sh
# 配置重启脚本
ExecReload=/data/start.sh
# 配置停止脚本
ExecStop=/data/stop.sh
PrivateTmp=true
 
[Install]
WantedBy=multi-user.target

(3)授权service     

chmod -R 777 mes.service

4. 配置开机启动

(1)配置开机启动
sudo systemctl enable mes.service

(2)重新加载配置
sudo systemctl daemon-reload

(3)查看启动配置(到这里就可以重启测试了)
sudo systemctl list-unit-files | grep mes

(4)使用systemctl启动服务,进行测试,如果失败failure,则查看下配置路径
sudo systemctl start mes.service

(5)使用systemctl停止服务
sudo systemctl stop mes.servic


http://www.kler.cn/news/308312.html

相关文章:

  • 使用canal.deployer-1.1.7和canal.adapter-1.1.7实现mysql数据同步
  • 探索轻量级语言模型 GPT-4O-mini 的无限可能
  • 面试常见题之PG数据库
  • 【工作流集成】springboot+vue工作流审批系统(实际源码)
  • 大数据之spark算子简介
  • SSM 框架 个人使用习惯 详细
  • vue3 + vite2 vue 打包后router-view空白
  • 用最新方案为数据密集型AI供能:将服务器农场沉入旧金山湾
  • 【YashanDB知识库】数据库获取时间和服务器时间不一致
  • Facebook的虚拟现实功能简介:社交网络的新前沿
  • 腾讯地图SDK Android版开发 11 覆盖物示例 4 线
  • 什么是蜘蛛池?有什么作用
  • 【原创】java+swing+mysql长途客车售票管理系统设计与实现
  • CACTI 0.8.7 迁移并升级到 1.2.7记录
  • 【零散技术】详解Odoo17邮件发送(一)
  • Unity 编辑器设置中文
  • 对称密码中的密钥是如何实现安全配送的?
  • 【数据结构】快速排序详解(递归版本)
  • 初始爬虫7
  • 时间安全精细化管理平台存在未授权访问漏洞
  • 项目管理 | 一文读懂什么是敏捷开发管理
  • Zotero使用(一)PDF文件导入不会自动识别
  • 3C认证---GB 4706.1-2005
  • 【Java EE】冯·诺依曼体系结构及其在 JavaEE 中的应用
  • systemctl控制服务和守护进程
  • Redis——常用数据类型set
  • nginx服务器安装和部署代理
  • [论文笔记] CSFCN
  • SpringSecurity原理解析(六):SecurityConfigurer 解析
  • 拖拽排序的实现示例demo