热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

使用linux部署SpringBoot程序

springboot程序在linux服务器上应该怎么部署?这次就分享下linux下如何正确部署springboot程序,感兴趣的朋友一起看看吧

SpingBoot的学习总算告一段落了,但它还留给了我们一个疑问,那就是程序在linux服务器上应该怎么部署?使用命令启动程序后如果ssh断开了程序会不会被shutdown?对于第一个问题比较好解决,只需要保证jdk安装正确就不会有太大问题。棘手的问题是后面这个,解决问题的关键就是要保证程序以守护进程(后台方式)运行。这次就分享下linux下如何正确部署程序

为了解决这个问题,我查阅网上的资料找到了下面3种解决方案

1   把jar包弄成系统服务(不推荐)

这种方法缺点也比较明显,那就是容易出现服务启动不起来,因为不同的linux发行版本都或多或少存在差异

2  使用nohup 命令配合kill -9 xxx

这种方法比较容易接受,也是一种折中的做法,但是要停止程序会比较麻烦需要使用命令找到进程再使用kill -9 ,还是有点麻烦

3 使用screen、tmux等方式(推荐)

综合考虑这种方法比较科学因为它提供了统一的管理多个会话的界面和相应的功能,操作起来比较简单些,缺点是需要一点点的学习成本

tmux常用命令:

$ tmux new -s session-name           新建会话
$ tmux a -t session-name               接入指定会话
$ tmux detach /$ Ctrl-b d              断开当前会话
$ tmux kill-session -t session-name  关闭会话

$ tmux ls                                       显示所有会话

screen常用命令:

$ screen -S window-name           新建会话
$ screen -r 会话编号或名称           接入指定会话/重新连接会话
$ screen -ls                               显示所有会话
Ctrl+a b                                   分离当前会话
Ctrl+a k 

以下是它们的区别,虽说tmux比较先进但究竟如何选择还是看大家的使用习惯

tmux 和 screen 很像,但比 screen 更好。要问好在哪里,简单的回答就是虽然与 screen 的功能相同,但是 tmux 设计得更好。screen 虽然可用,但是很不稳定。

以下是一些 tmux 超越 screen 的地方:

  • screen 的项目大体上已经终止了,并且代码中有大量的问题
  • tmux 是一个活跃的项目,并且其代码库经常进行更新
  • tmux 使用的是真正的客户端/服务器模型,而 screen 只是模拟了这种模型的行为
  • tmux 同时支持 emacs 和 vim 的快捷键
  • tmux 支持自动重命名窗口
  • tmux 可以高度的脚本化
  • tmux 的窗口分割功能更加先进

SpringBoot使用maven打包比较方便,打包时检查下pom.xml的配置,确保有如下配置:     

 
 
   
    org.springframework.boot 
    spring-boot-maven-plugin 
     
       
      true 
       
      true 
     
   
 
lt;/build> 

打包就用maven install就行了,如果打包成功找到相应的jar重命名后上传到linux服务器授权一下就行

这样应用就启动了,即使命令行关闭了或者从ssh断开也不会影响程序的正常运行

断开连接

结束会话后程序就被shutdown了,如下所示

screen的使用和tmux大同小异,这边已经实践过了,就部署程序使其在后台运行,选screen和tmux效果都差不多。

PS:下面给大家介绍linux部署spring-boot

先对项目maven clean 然后在项目上maven install  打成jar包,之后到linux上删除前一个版本的进程

  查看java进程的命令 ps -ef | grep java

  杀死进程 kill -9 进程号

  直接运行spring-boot项目 nohup java -jar sinocube.jar & 使用nohup一定要以&结尾

  nohup 回输出日志文件,日志文件可以自定义文件名,默认为nohup.nohup.out

       cat nohup.out 查看日志nohup.out是文件名称
  tailf nohup.out 实时查看日志


推荐阅读
  • Amoeba 通过优化 MySQL 的读写分离功能显著提升了数据库性能。作为一款基于 MySQL 协议的代理工具,Amoeba 能够高效地处理应用程序的请求,并根据预设的规则将 SQL 请求智能地分配到不同的数据库实例,从而实现负载均衡和高可用性。该方案不仅提高了系统的并发处理能力,还有效减少了主数据库的负担,确保了数据的一致性和可靠性。 ... [详细]
  • vsftpd配置(虚拟用户、匿名用户登录)
    一、ftp服务搭建(一)概述1.ftp连接及传输模式(1)控制连接TCP21,用于发送FTP命令信息 ... [详细]
  • 本文介绍了如何查看PHP网站及其源码的方法,包括环境搭建、本地测试、源码查看和在线查找等步骤。 ... [详细]
  • 本文详细介绍了如何在 Linux 系统上安装 JDK 1.8、MySQL 和 Redis,并提供了相应的环境配置和验证步骤。 ... [详细]
  • 本文详细介绍了在 Ubuntu 系统上搭建 Hadoop 集群时遇到的 SSH 密钥认证问题及其解决方案。通过本文,读者可以了解如何在多台虚拟机之间实现无密码 SSH 登录,从而顺利启动 Hadoop 集群。 ... [详细]
  • 本文详细探讨了几种常用的Java后端开发框架组合及其具体应用场景。通过对比分析Spring Boot、MyBatis、Hibernate等框架的特点和优势,结合实际项目需求,为开发者提供了选择合适框架组合的参考依据。同时,文章还介绍了这些框架在微服务架构中的应用,帮助读者更好地理解和运用这些技术。 ... [详细]
  • 服务器部署中的安全策略实践与优化
    服务器部署中的安全策略实践与优化 ... [详细]
  • FreeBSD环境下PHP GD库安装问题的详细解决方案
    在 FreeBSD 环境下,安装 PHP GD 库时可能会遇到一些常见的问题。本文详细介绍了从配置到编译的完整步骤,包括解决依赖关系、配置选项以及常见错误的处理方法。通过这些详细的指导,开发者可以顺利地在 FreeBSD 上完成 PHP GD 库的安装,确保其正常运行。此外,本文还提供了一些优化建议,帮助提高安装过程的效率和稳定性。 ... [详细]
  • V8不仅是一款著名的八缸发动机,广泛应用于道奇Charger、宾利Continental GT和BossHoss摩托车中。自2008年以来,作为Chromium项目的一部分,V8 JavaScript引擎在性能优化和技术创新方面取得了显著进展。该引擎通过先进的编译技术和高效的垃圾回收机制,显著提升了JavaScript的执行效率,为现代Web应用提供了强大的支持。持续的优化和创新使得V8在处理复杂计算和大规模数据时表现更加出色,成为众多开发者和企业的首选。 ... [详细]
  • 本文详细介绍了在CentOS 6.5 64位系统上使用阿里云ECS服务器搭建LAMP环境的具体步骤。首先,通过PuTTY工具实现远程连接至服务器。接着,检查当前系统的磁盘空间使用情况,确保有足够的空间进行后续操作,可使用 `df` 命令进行查看。此外,文章还涵盖了安装和配置Apache、MySQL和PHP的相关步骤,以及常见问题的解决方法,帮助用户顺利完成LAMP环境的搭建。 ... [详细]
  • 如何安装和使用 WinSCP 与 PuTTY:连接 Linux 系统的专业工具指南
    本指南详细介绍了如何在Windows环境中安装和使用WinSCP与PuTTY,以实现与Linux系统的安全连接。WinSCP是一款开源的图形化SFTP客户端,支持SSH和SCP协议,主要用于在本地和远程计算机之间安全地传输文件。用户可以通过官方下载页面获取最新版本的WinSCP和PuTTY,按照简单的步骤完成安装,并利用这些工具进行高效的文件管理和远程操作。 ... [详细]
  • 如何在任意浏览器中轻松安装并使用VSCode——Codeserver简易指南
    code-server 是一款强大的工具,允许用户在任何服务器上部署 VSCode,并通过浏览器进行访问和使用。这一解决方案不仅简化了开发环境的搭建过程,还提供了高度灵活的工作方式。用户只需访问 GitHub 上的官方仓库(GitHub-coder/code-server),即可获取详细的安装和配置指南,快速启动并运行 code-server。无论是个人开发者还是团队协作,code-server 都能提供高效、便捷的代码编辑体验。 ... [详细]
  • 在开发过程中,我最初也依赖于功能全面但操作繁琐的集成开发环境(IDE),如Borland Delphi 和 Microsoft Visual Studio。然而,随着对高效开发的追求,我逐渐转向了更加轻量级和灵活的工具组合。通过 CLIfe,我构建了一个高度定制化的开发环境,不仅提高了代码编写效率,还简化了项目管理流程。这一配置结合了多种强大的命令行工具和插件,使我在日常开发中能够更加得心应手。 ... [详细]
  • 提升 Kubernetes 集群管理效率的七大专业工具
    Kubernetes 在云原生环境中的应用日益广泛,然而集群管理的复杂性也随之增加。为了提高管理效率,本文推荐了七款专业工具,这些工具不仅能够简化日常操作,还能提升系统的稳定性和安全性。从自动化部署到监控和故障排查,这些工具覆盖了集群管理的各个方面,帮助管理员更好地应对挑战。 ... [详细]
  • 七款高效编辑器与笔记工具推荐:KindEditor自动换行功能解析
    本文推荐了七款高效的编辑器与笔记工具,并详细解析了KindEditor的自动换行功能。其中,轻笔记QingBiJi是一款完全免费的记事本软件,用户可以通过其简洁的界面和强大的功能轻松记录和管理日常事务。此外,该软件还支持多平台同步,确保用户在不同设备间无缝切换。 ... [详细]
author-avatar
自由的成长_563_742_784
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有