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

项目在linux上的简单部署

本文章只介绍项目的简单部署,暂时没有Docker部署。

项目部署有两种方式,一种是直接命令部署,第二种是用脚本,脚本本身也是将命令进行封装来执行。

命令

项目通过maven打包,启动命令:

# 启动命令
nohup java -jar demo-0.0.1-SNAPSHOT.jar --spring.profiles.active=dev >log.out 2>&1&

关闭命令两种:

第一种是直接查询出项目的进程ID,再用kill;

第二种是在项目启动类中将进程ID写入固定文件中,在用命令进行关掉进程;

第一种如下:

# 查询项目进行ID 在杀掉进程
ps -ef | grep demo-0.0.1-SNAPSHOT.jar
kill -9 'pid' 

第二种:

启动类:

@Slf4j
@SpringBootApplication
public class DemoApplication {public static void main(String[] args) {SpringApplication application = new SpringApplication(DemoApplication .class);// 进程ID写到固定文本里    application.addListeners(new ApplicationPidFileWriter("./shutdown/DemoApplication .pid"));application.run();}}

在同项目部署的路径下运行下面的命令:

# cat: 命令用于连接文件并打印到标准输出设备上。
# xargs: 捕获一个命令的输出,然后传递给另外一个命令
cat shutdown/DemoApplication.pid |xargs kill

参考链接:

xargs的使用: Linux xargs 命令 | 菜鸟教程

脚本

准备启动脚本 start.sh:

nohup java -jar demo-0.0.1-SNAPSHOT.jar --spring.profiles.active=dev >log.out 2>&1&

准备关闭脚本 shutdown.sh:

#  Shell脚本if语法-- if/then/elif/else/fi
APP_NAME=demo-0.0.1-SNAPSHOT
ex=`ps -ef | grep $APP_NAME | grep -v 'grep' | awk '{print $2}' | wc -l`
if [ $ex -gt 0 ]
thenps -ef | grep $APP_NAME | grep -v 'grep' |awk '{print $2}'|xargs kill -9sleep 3echo $APP_NAME "has stopped!"
elseecho $APP_NAME "is not running!"
fi

将脚本和打包的项目放在同一个位置,执行命令如下:

# 启动项目
./start.sh
#关闭项目
./shutdown.sh

注:如果第一次执行需要为脚本赋权,执行下面命令

chmod +x *.sh 

http://www.lryc.cn/news/303031.html

相关文章:

  • MySQL安装教程(详细版)
  • Linux platform tree下的单总线驱动程序设计(DHT11)
  • 自研爬虫框架的经验总结(理论及方法)
  • 配置基于 AWS CRT 的 HTTP 客户端
  • 挑战杯 基于LSTM的天气预测 - 时间序列预测
  • 我为什么不喜欢关电脑?
  • Unity【角色/摄像机移动控制】【1.角色移动】
  • Oracle12cR2之Job定时作业调度器详解
  • python自学...
  • Message Pack 协议详解及应用
  • 智慧社区管理系统:构建未来的生活模式
  • Rocky 8.9 Kubespray v2.24.0 在线部署 kubernetes v1.28.6 集群
  • 新版AI系统ChatGPT源码支持GPT-4/支持AI绘画去授权
  • 学习鸿蒙基础(5)
  • Tuxera NTFS2024最新中文版支持M1/M2/M3苹果全系机型
  • 【Python】OpenCV-图片添加水印处理
  • Milvus数据库介绍
  • notepad++的下载与使用
  • 论UI的糟糕设计:以百度网盘为例
  • 【Spring】三级缓存
  • CVE-2016-3088(ActiveMQ任意文件写入漏洞)
  • 270.【华为OD机试真题】字符串拼接(深度优先搜索(DFS)-JavaPythonC++JS实现)
  • 线阵相机参数介绍之轴编码器控制
  • 【JavaEE】_HTTP响应
  • SQL防止注入工具类,可能用于SQL注入的字符有哪些
  • 【数学建模入门】
  • ansible剧本中的角色
  • weblog项目开发记录--SpringBoot后端工程骨架
  • axios封装终极版实现token无感刷新及全局loading
  • 推荐一个内网穿透工具,支持Windows桌面、Linux、Arm平台客户端