Linux中jar包的启动脚本解析及问题

news/2024/5/1 14:15:04/文章来源:https://blog.csdn.net/qq_42374233/article/details/130102494

搭建运行环境时,把jar包打好外,我们还需要一个启动脚本,新建一个文件start.sh,内容如下:

ps -ef | grep dvmrms | grep -v grep | awk '{print $2}' | xargs kill -9nohup java -jar dvmrms.jar >/dev/null 2>&1 &sleep 10stail -100 ./logs/dvmrms_log_file.log

着重解释下ps -ef | grep dvmrms | grep -v grep | awk ‘{print $2}’ | xargs kill -9命令

  1. ps -ef | grep dvmrms 这个命令了解linux命令的同学都知道是查找dvmrms的进程,当项目运行时我们执行一下这个命令,可以看到有两个进程
    在这里插入图片描述

  2. grep -v grep 这个命令可以过滤掉查找进程的自身这条命令,grep -v name是查找不包含name的内容,所以在ps -ef命令执行后查出的两条内容中再执行grep -v grep便可以得到我们想要的运行的项目进程
    在这里插入图片描述

  3. awk ‘{print $2}’ 是截取第二列数据,上图中我们查找的进程内容,第二列就是进程号(pid),所以通过此命令获得该进程号
    在这里插入图片描述

  4. 最后xargs kill -9 命令就是把前面的输出作为后面命令kill -9 的输入,也就是传左边命令截取的进程号给命令kill -9,就完成了关闭项目的操作了

  5. 关掉进程后,我们再启动项目就使用nohup java -jar dvmrms.jar >/dev/null 2>&1 &命令后台启动项目

  6. sleep 10s
    tail -100 ./logs/dvmrms_log_file.log
    这两个命令就是先等待10秒,将 ./logs/dvmrms_log_file.log文件中的后100行内容打印出来
    这个./logs/dvmrms_log_file.log文件路径是我们项目中logback.xml指定的日志的格式和输出位置,各位同学可以根据自己项目的情况自己修改。


如果执行脚本时遇到 $‘\r‘: command not found 错误
是因为脚本在Windows系统编写时,换行是\r\n,而在Linux系统中换行是\n。
所以在Linux中运行脚本时,系统会认为\r是一个真实的字符(不是换行符),导致运行错误。

解决方法:
linux系统的脚本去掉\r,执行以下命令即可(该命令自动重写覆盖):

sed -i 's/\r//' start.sh

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_96764.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

对抗样本-(CVPR 2022)-通过基于对象多样化输入来提高有针对性对抗样本的可迁移性

论文地址:https://arxiv.org/abs/2203.09123 代码地址:https://github.com/dreamflake/ODI 摘要:本文提出了一种新的方法来生成有针对性的对抗样本,该方法通过使用多种不同的输入图像来生成更加丰富和多样化的图像。具体而言&…

【都2023年了,还在问网络安全怎么入门】

前言 【都2023年了,还在问网络安全怎么入门】所以这一期就出一一个怎么学习网络安全的学习路线和方法,觉得有用的话点赞收藏下 首先咱们聊聊,学习网络安全方向通常会有哪些问题 1、打基础时间太长 学基础花费很长时间,光语言都有…

暗讽友商 昆仑万维大模型预告刺激股价

搭上AI风口,上市公司昆仑万维年内股价大涨217.56%,一时名声大噪。火了以后,昆仑万维的野心越来越大,喊出“All in AGI(通用人工智能)与AIGC”的豪言壮语。 在近期预告旗下大模型“天工”邀测的公告中&…

【数据结构与算法】万字剖析八大排序(直接插入排序、希尔排序、选择排序、堆排序、冒泡排序、快速排序、归并排序、计数排序)

目录一.直接插入排序二.希尔排序三.选择排序四.堆排序五.冒泡排序六.快速排序1.hoare版2.挖坑法3.前后指针4.选取基准值的优化(1)快速排序非递归七.归并排序(2)归并排序非递归八.计数排序九.八大排序稳定性分析一.直接插入排序 初…

javaEE 初阶 — 第一个 servlet 程序

文章目录Servlet 是什么第一个 Servlet 程序1 创建项目2 引入依赖3 创建目录结构4 代码编写5 打包程序6 部署7 验证如何使用 tomcat 插件打包及部署1 什么是插件2 插件的安装3 插件的使用4 可能会出现的问题Servlet 是什么 Servlet 是一种实现 动态页面 的技术,是一…

elasticsearch MySQL 数据同步。

elasticsearch & MySQL 数据同步。 文章目录elasticsearch & MySQL 数据同步。3. 数据同步。3.1. 思路分析。3.1.1. 同步调用。3.1.2. 异步通知。3.1.3. 监听 binlog。3.1.4. 选择。3.2. 实现数据同步。3.2.1. 思路。3.2.2. 导入 demo。3.2.3. 声明交换机、队列。1&…

ChatGLM-6B论文代码笔记

ChatGLM-6B 文章目录ChatGLM-6B前言一、原理1.1 优势1.2 实验1.3 特点:1.4 相关知识点二、实验2.1 环境基础2.2 构建环境2.3 安装依赖2.4 运行2.5 数据2.6 构建前端页面3 总结前言 Github:https://github.com/THUDM/ChatGLM-6B 参考链接: ht…

GPSS【实践 01】Developing a Greenplum Streaming Server Client 自定义GPSS客户端开发实例

自定义GPSS客户端开发流程1.GPSS是什么2.架构3.组件下载安装4.自定义客户端4.1 GPSS Batch Data API Service Definition4.2 Setting up a Java Development Environment4.3 Generating the Batch Data API Client Classes4.4 Coding the GPSS Batch Data Client4.4.1 Connect …

精准关键词获取-行业搜索词分析

SEO关键词的收集通常可以通过以下几种方法: 根据市场价值、搜索词竞争性和企业实际产品特征进行筛选:确定您的关键词列表之前,建议先进行市场分析,了解您的竞争对手、行业状况和目标受众等信息,以更好的了解所需的特定…

为何ChatGPT如此擅长编造故事?

“幻觉”——人工智能中的一个偏见性术语 AI聊天机器人(如OpenAI的ChatGPT)依赖于一种称为“大型语言模型”(LLM)的人工智能来生成它们的响应。LLM是一种计算机程序,经过数百万文本源的训练,可以阅读并生成“自然语言”文本语言,就像人类自然…

HTTP协议概述 | 简析HTTP请求流程 | HTTP8种请求方法

目录 🌏 HTTP的简单介绍 何为HTTP HTTP1.0与HTTP1.1 🌏 HTTP的请求方法 1、OPTIONS 2、HEAD 3、GET 4、POST 5、PUT 6、DELETE 7、TRACE 8、CONNECT 🌏 HTTP的工作原理 🌏 HTTP请求/响应的步骤 1、客户端连接到Web…

【Linux】用户命令(创建,修改,切换,删除,密码)

目录 1.创建 查看用户信息 查看id 2.修改 修改用户名 修改用户uid 操作前: 操作后 修改组名 操作前: 操作后: 修改组id 操作前: 操作后: 操作前: 操作后: 3.切换用户 4.删除 操作前: 操作…

LeetCode:376. 摆动序列——说什么贪心和动规~

🍎道阻且长,行则将至。🍓 🌻算法,不如说它是一种思考方式🍀算法专栏: 👉🏻123 一、🌱376. 摆动序列 题目描述:如果连续数字之间的差严格地在正数和…

php7类型约束,严格模式

在PHP7之前,函数和类方法不需要声明变量类型 ,任何数据都可以被传递和返回,导致几乎大部分的调用操作都要判断返回的数据类型是否合格。 为了解决这个问题,PHP7引入了类型声明。 目前有两类变量可以声明类型: 形参&a…

拼多多运营中需要采集淘宝天猫京东平台商品详情页面数据上架拼多多店铺,如何使用技术封装接口实现

业务背景:电商平台趋势,平台化。大家可以看到大的电商都开始有自己的平台,其实这个道理很清楚,就是因为这是充分利用自己的流量、自己的商品和服务大效益化的一个过程,因为有平台,可以利用全社会的资源弥补…

RPC调用框架简单介绍

一.Thrift Apache Doris目前使用的RPC调度框架。Thrift是一款基于CS(client -server)架构的RPC通信框架,开发人员可以根据定义Thrift的IDL(interface decription language)文件来定义数据结构和服务接口,灵活性高,支持…

项目5:实现数据字典的上传下载

项目5:实现数据字典的上传下载 1.什么是数据字典?如何设计? 2.业务流程逻辑 3.数据库表的设计 4.实现上传下载逻辑(前端) 5.实现上传逻辑(后端) 6.实现下载依赖(后端&#xff…

代码随想录Day49

今天继续学习动规解决完全背包问题。 322.零钱兑换 给你一个整数数组 coins ,表示不同面额的硬币;以及一个整数 amount ,表示总金额。 计算并返回可以凑成总金额所需的最少的硬币个数 。如果没有任何一种硬币组合能组成总金额,…

vuex中的 mapState, mapMutations

vuex中的 mapState, mapMutations Start 今天使用vuex的过程中,遇到 mapState, mapMutations 这么两个函数,今天学习一下这两个函数。 本文介绍的vuex基于 vuex3.0 1. 官方文档说明 1.1 mapState 官方解释 点击这里&#xff1…

【JUC进阶】详解synchronized锁升级

文章目录1. synchronized概述2. synchronized 的实现原理2.1 Java对象组成2.2 Monitor2.3 从字节码角度看synchronized3. 锁升级3.1 偏向锁3.2 轻量级锁1. synchronized概述 synchronized是一个悲观锁,可以实现线程同步,在多线程的环境下,需…