热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

java项目怎么设为启动项_怎么设置开机启动项springboot项目注册为Linux系统服务并设置开机自启动...

springboot项目注册为Linux的服务并设置开机自启动一般项目生产环境都在Linux上面跑,所以今天我们来讲一下如何在Linux中将springboot项目注

springboot项目注册为Linux的服务并设置开机自启动

一般项目生产环境都在Linux上面跑,所以今天我们来讲一下如何在Linux中将springboot项目注册为系统服务并设置开机自启动,这里我们以Centos7.6为例。

1、上传我们的springboot项目的jar包

如下图所示:

名为demo-0.0.1-SNAPSHOT.jar

2、 启动项目

java -jar demo-0.0.1-SNAPSHOT.jar

补充:

可能存在极少数是这样(或者类似)来启动springboot项目,其实这里的这种方式启动跟window中开启cmd窗口启动类似,这里不能退出交互,例如:Ctrl+C就会被kill掉。所以,比较好的一种方案,就是将springboot项目注册为Linux系统服务。

3、 基于Linux的Systemd部署springboot项目

(1)关于systemd简单介绍:

systemd是Linux 下一个与SysV和LSB初始化脚本兼容的系统和服务管理器。systemd 使用 socket和D-Bus来开启服务,提供基于守护进程的按需启动策略,保留了Linux cgroups的进程追踪功能,支持快照和系统状态恢复,维护挂载和自挂载点,实现了各服务间基于从属关系的一个更为精细的逻辑控制,拥有前卫的并行性能。systemd无需经过任何修改便可以替代sysvinit 。

补充:

关于systemd的更多内容请参考:

https://fedoraproject.org/wiki/Systemd/zh-cn

(2) 编写service文件

配置文件主要放在/usr/lib/systemd/system下,在/etc/systemd/system也有。

这里我们以/etc/systemd/system为例:

cat demo.service

这里的这个demo.service是我之前写好的

内容如下,比较简单:

[Unit]

Description=java springboot service

After=syslog.target

[Service]

ExecStart=/general/jdk1.8/bin/java -jar /general/demo-0.0.1-SNAPSHOT.jar

[Install]

WantedBy=multi-user.target

简单的解释:

[Unit]:启动顺序与依赖关系

Description:当前服务的简单描述。

After:如syslog.target需要启动,那么demo.service应该在它之后启动。

[Service]:启动行为

ExecStart:定义启动进程时执行的命令。

如:/general/jdk1.8/bin/java -jar /general/demo-0.0.1-SNAPSHOT.jar。

[Install]

WantedBy:表示该服务所在的Target(服务组)。

补充:

这里可以查看multi-user.target包含的所有服务,如下:

systemctl list-dependencies multi-user.target

(3) 、启动服务

#启动

systemctl start demo.service

#查看服务状态

systemctl status demo.service

(4) 、查看日志

journalctl -u demo

-u:查看指定名字的Unit日志

关于journalctl命令大家自行man。

亦可

journalctl -u demo -f

(5) 访问web界面

#查看ip

ip a

访问

(6)设置开机自启动

#开机启动

systemctl enable demo.service

#查看是否设置成功

[root@docker ~]# systemctl list-unit-files | grep enabled | grep demo

demo.service enabled

(7)总结

最后,本例用到的demo.service文件仅是作为测试文件,这里只是给大家提供一个思路。关于它的完善需要大家根据自己的需求来填充。

补充一些常用命令:

开机自启:systemctl enable demo.service

关闭自启:systemctl disable demo.service

启动服务:systemctl start demo.service

停止服务:systemctl stop demo.service

重启服务:systemctl restart demo.service

查看服务状态:systemctl status demo.service

最后感谢大家支持。



推荐阅读
  • 本文将从基础概念入手,详细探讨SpringMVC框架中DispatcherServlet如何通过HandlerMapping进行请求分发,以及其背后的源码实现细节。 ... [详细]
  • Centos7 Tomcat9 安装笔记
    centos7,tom ... [详细]
  • 本文详细介绍了Socket在Linux内核中的实现机制,包括基本的Socket结构、协议操作集以及不同协议下的具体实现。通过这些内容,读者可以更好地理解Socket的工作原理。 ... [详细]
  • 在CentOS 7中部署Nginx并配置SSL证书
    本文详细介绍了如何在CentOS 7操作系统上安装Nginx服务器,并配置SSL证书以增强网站的安全性。适合初学者和中级用户参考。 ... [详细]
  • Docker安全策略与管理
    本文探讨了Docker的安全挑战、核心安全特性及其管理策略,旨在帮助读者深入理解Docker安全机制,并提供实用的安全管理建议。 ... [详细]
  • 本文详细介绍如何在华为鲲鹏平台上构建和使用适配ARM架构的Redis Docker镜像,解决常见错误并提供优化建议。 ... [详细]
  • Spring Boot使用AJAX从数据库读取数据异步刷新前端表格
      近期项目需要是实现一个通过筛选选取所需数据刷新表格的功能,因为表格只占页面的一小部分,不希望整个也页面都随之刷新,所以首先想到了使用AJAX来实现。  以下介绍解决方法(请忽视 ... [详细]
  • 本文详细介绍了在 CentOS 7 系统中安装 Python 3.7 的步骤,包括编译工具的安装、Python 3.7 源码的下载与编译、软链接的创建以及常见错误的处理方法。 ... [详细]
  • 本文探讨了一个Web工程项目的需求,即允许用户随时添加定时任务,并通过Quartz框架实现这些任务的自动化调度。文章将介绍如何设计任务表以存储任务信息和执行周期,以及如何通过一个定期扫描机制自动识别并加载新任务到调度系统中。 ... [详细]
  • 本文详细介绍了在PHP中如何获取和处理HTTP头部信息,包括通过cURL获取请求头信息、使用header函数发送响应头以及获取客户端HTTP头部的方法。同时,还探讨了PHP中$_SERVER变量的使用,以获取客户端和服务器的相关信息。 ... [详细]
  • CentOS下ProFTPD的安装与配置指南
    本文详细介绍在CentOS操作系统上安装和配置ProFTPD服务的方法,包括基本配置、安全设置及高级功能的启用。 ... [详细]
  • 从理想主义者的内心深处萌发的技术信仰,推动了云原生技术在全球范围内的快速发展。本文将带你深入了解阿里巴巴在开源领域的贡献与成就。 ... [详细]
  • spring(22)JdbcTemplate
    2019独角兽企业重金招聘Python工程师标准###1.导入jar包,必须jar包:c3p0、mysql-connector、beans、con ... [详细]
  • CentOS7通过RealVNC实现多人使用服务器桌面
    背景:公司研发团队通过VNC登录到CentOS服务器的桌面实现软件开发工作为防止数据外泄,需要在RealVNC设置禁止传输文件、访问粘贴板等策略过程&# ... [详细]
  • Spring Boot + RabbitMQ 消息确认机制详解
    本文详细介绍如何在 Spring Boot 项目中使用 RabbitMQ 的消息确认机制,包括消息发送确认和消息接收确认,帮助开发者解决在实际操作中可能遇到的问题。 ... [详细]
author-avatar
多米音乐_34363545
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有