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

部署若依Spring boot项目

 nohup和&

nohup命令解释

nohup命令:nohup 是 no hang up 的缩写,就是不挂断的意思,但没有后台运行,终端不能标准输入。
nohup :不挂断的运行,注意并没有后台运行的功能,就是指,用nohup运行命令可以使命令永久的执行下去,和用户终端没有关系,注意了nohup没有后台运行的意思;&才是后台运行
在缺省情况下该作业的所有输出都被重定向到一个名为nohup.out的文件中。

 nohup和&的区别

​& 在后台运行, 当你在执行 ./start.sh & 的时候, 即使你用ctrl+C, 那么start.sh照样运行(因为对SIGINT(程序终止信号,一般有ctrl+C发出)信号免疫)。 但是要注意, 如果你直接关掉shell后, 那么,start.sh进程同样消失。 可见, &的后台并不硬(因为对SIGHUP(用户终端连接(正常或非正常)结束时发出)信号不免疫)。
nohup 可以忽略SIGHUP信号,当运行nohup ./start.sh的时候,关闭shell,那么start.sh进程还是存在的(对SIGHUP信号免疫)。但是如果直接在shell中用Ctrl+C, 那么start.sh进程也是会消失的(因为对SIGINT信号不免疫)。
​​所以,&和nohup没有关系。要实现进程真正不受shell中Ctrl+C和shell关闭的影响, 可以巧妙的结合起来用:
nohup COMMAND > /dev/null &
这样就能使命令永久的在后台执行两全其美。

部署若依Spring boot项目构建前后端分离

由于本项目采用的是java Spring Boot 框架编写的一个项目,他所采用的方式为jar包部署。采用jar包部署的有Spring Cloud dubbo/微服务系列。下面主要实战整个模拟生产中如何使用jar包上线,以及上线流程。
spring cloud  dubbo  ---jar    nohup java -jar  xxxx.jar & 
jar包 是不需要安装tomcat的,只需要配置jdk。 war 需要安装tomcat 
注册中心 网关  配置中心 认证中心
项目源码:https://gitee.com/y_project/RuoYi-Vue

实验环境

环境要求准备三台机器
1.作为前端服务器、mysql和redis服务器,同时作为代码打包服务器
192.168.157.132 web-nginx
2.后端服务器
192.168.157.133 java-web-1
192.168.157.134 java-web-2
3.后端数据库服务器
​192.168.157.131 redis-mysql-server
所有机器准备测试环境
# systemctl stop firewalld
# systemctl disable firewalld
# setenforce 0

模拟开发环境安装maven打包工具--这里我们不做详细介绍,打包为开发工作,而且以windows环境为主。我们使用linux环境。

配置数据库

MySQL、Redis的配置和启动

redis-mysql-server 服务器(​192.168.157.131)上配置

# 安装vim和wget
yum install -y vim wget
# 下载MySQL 8.0的RPM包(需替换为MySQL 5.7的RPM包链接)
wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
# 安装RPM包以更新YUM仓库
rpm -ivh mysql80-community-release-el7-3.noarch.rpm
# 编辑repo文件,关闭mysql8.0并开启mysql5.7
vim /etc/yum.repos.d/mysql-community.repo
# 将mysql8.0的enabled设为0,mysql5.7的enabled设为1,并关闭gpg检查
# enabled=1
# gpgcheck=0
# 安装MySQL服务器端
yum install -y mysql-community-server
# 启动MySQL服务
systemctl start mysqld
# 获取初始随机生成的root密码
grep 'temporary password' /var/log/mysqld.log
# 设置root用户的密码(示例密码已更改,请替换为实际使用的密码)
mysqladmin -uroot -p&#

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【鸿蒙HarmonyOS NEXT】调用后台接口及List组件渲染
  • 一台笔记本电脑的硬件都有哪些以及对应的功能
  • WPF在MVVM架构下使用DataGrid并实现行删除
  • 广度优先搜索Breadth-First-Search
  • 【基础】Three.js加载纹理贴图、加载外部gltf格式文件
  • Ext JS主要特点有哪些?
  • uniapp+vue3实现小程序和h5解压线上压缩包以及如何访问解压后的视频地址
  • 詳細解析軟路由與代理爬蟲池-okeyproxy
  • C++和OpenGL实现3D游戏编程【连载8】——纹理文字实现与优化
  • 元学习与机器学习
  • 精通推荐算法29:行为序列建模之MIMN— 记忆网络建模长周期行为序列
  • 视频监控系统布局策略:EasyCVR视频汇聚平台构建高效、全面的安全防线
  • ffmpeg音视频开发从入门到精通——ffmpeg日志及目录操作
  • 第143天:内网安全-权限维持自启动映像劫持粘滞键辅助屏保后门WinLogon
  • 探寻 IP 代理地址繁多之因
  • 「前端」从UglifyJSPlugin强制开启css压缩探究webpack插件运行机制
  • Docker 1.12实践:Docker Service、Stack与分布式应用捆绑包
  • JavaScript类型识别
  • linux学习笔记
  • Python_网络编程
  • spring boot 整合mybatis 无法输出sql的问题
  • Spring声明式事务管理之一:五大属性分析
  • 阿里云容器服务区块链解决方案全新升级 支持Hyperledger Fabric v1.1
  • 从零开始学习部署
  • 对象引论
  • 欢迎参加第二届中国游戏开发者大会
  • 记一次用 NodeJs 实现模拟登录的思路
  • 码农张的Bug人生 - 见面之礼
  • 那些年我们用过的显示性能指标
  • 使用iElevator.js模拟segmentfault的文章标题导航
  • 算法系列——算法入门之递归分而治之思想的实现
  • 用 Swift 编写面向协议的视图
  • ​ 轻量应用服务器:亚马逊云科技打造全球领先的云计算解决方案
  • ​七周四次课(5月9日)iptables filter表案例、iptables nat表应用
  • ​如何使用ArcGIS Pro制作渐变河流效果
  • #include
  • #pragma once
  • (2)(2.10) LTM telemetry
  • (2)STM32单片机上位机
  • (8)Linux使用C语言读取proc/stat等cpu使用数据
  • (C语言)输入一个序列,判断是否为奇偶交叉数
  • (java)关于Thread的挂起和恢复
  • (ZT)一个美国文科博士的YardLife
  • (独孤九剑)--文件系统
  • (二)测试工具
  • (翻译)Quartz官方教程——第一课:Quartz入门
  • (附源码)基于SSM多源异构数据关联技术构建智能校园-计算机毕设 64366
  • (原創) 如何讓IE7按第二次Ctrl + Tab時,回到原來的索引標籤? (Web) (IE) (OS) (Windows)...
  • (轉貼) 寄發紅帖基本原則(教育部禮儀司頒布) (雜項)
  • ../depcomp: line 571: exec: g++: not found
  • .FileZilla的使用和主动模式被动模式介绍
  • .mkp勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .NET Core6.0 MVC+layui+SqlSugar 简单增删改查
  • .net 写了一个支持重试、熔断和超时策略的 HttpClient 实例池
  • .NET/C# 在代码中测量代码执行耗时的建议(比较系统性能计数器和系统时间)