linux部署SpringBoot程序

7 篇文章 0 订阅
1 篇文章 0 订阅

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的配置,确保有如下配置:

         <build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
				<configuration>
					<!--fork : 如果没有该项配置,devtools不会起作用,即应用不会restart -->
					<fork>true</fork>
					<!-- 可选的配置 -->
					<executable>true</executable>
				</configuration>
			</plugin>
		</plugins>
	</build>

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


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


断开连接


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


screen的使用和tmux大同小异,这边已经实践过了,就部署程序使其在后台运行,选screen和tmux效果都差不多。下面的2篇文章给大家做参考


tmux简单入门:

http://blog.jobbole.com/87278/

screen简单入门:

http://www.cnblogs.com/mchina/archive/2013/01/30/2880680.html

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值