shell脚本部署springboot

#!/bin/bashecho "$1 jar包名称,$2 运行环境 " echo "====reload jar: $1 env: $2 ==== " if [ -z $1 ];thenecho "请输入jar包名称......."
elseecho "停止开始......."ID=`ps -ef | grep "$1" | grep -v "grep" | grep -v "reload.sh" | awk '{print $2}'`echo $IDfor id in $IDdokill -9 $idecho "killed $id"donesleep 2secho "停止成功......."echo "start $1"nohup java -Xms2048M -Xmx2048M -jar $1  --spring.profiles.active=$2  >/dev/null 2>&1 &echo "sucess"
fi

命令解析:

ps -ef | grep "hzz-ha-1.0-SNAPSHOT.jar" | grep -v "grep" | grep -v "reload.sh" | awk '{print $2}'

这条命令的作用是查找并输出运行指定jar包的进程ID,其中:

- `ps -ef`:列出所有进程信息

- `grep "hzz-ha-1.0-SNAPSHOT.jar"`:过滤包含该jar包名的进程

- `grep -v "grep"`:过滤掉grep自己的进程(第一层grep产生的进程信息)

- `grep -v "reload.sh"`:过滤掉运行这个脚本本身的进程,脚本名称:reload.sh

- `awk '{print $2}'`:打印出进程的PID,也就是命令的第二列

所以它通过两层过滤:

1. 第一层过滤找到包含指定jar包名的进程

2. 第二层过滤排除grep和脚本本身进程

最后用awk仅打印进程的PID。

这样可以准确定位到运行该jar的进程ID,而不会将grep和脚本本身也当成目标进程杀死。

整条命令实现了精确的进程搜索与过滤。

ID=`ps -ef | grep "$1" | grep -v "grep" | grep -v "reload.sh" | awk '{print $2}'`echo $IDfor id in $IDdokill -9 $idecho "killed $id"donesleep 2secho "停止成功......."

这段脚本代码是用于停止指定名称的Java进程,关键步骤解析如下:

1. 使用ps和grep查找指定名称进程的所有PID,并保存到变量ID中

2. 打印出找到的PID

3. 用for循环遍历PID列表

4. 对每个PID执行kill -9操作,强制停止该进程

5. 打印已停止的进程ID信息

6. sleep 2秒,留出停止进程的时间

7. 打印“停止成功”信息

这样通过先获取PID列表,然后循环终止进程,可以实现批量停止进程的效果。

for循环可以处理PID变量包含多个PID的情况,确保都会被停止,避免漏掉某些进程没有被结束。

使用:

./reload.sh xxx.jar dev

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

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

相关文章

Ansible自动化运维工具 —— Playbook 剧本

playbooks 本身由以下各部分组成 (1)Tasks:任务,即通过 task 调用 ansible 的模板将多个操作组织在一个 playbook 中运行 (2)Variables:变量 (3)Templates:模…

【JVM】(一)深入理解JVM运行时数据区

文章目录 一、JVM 运行流程二、虚拟机栈(线程私有)三、本地方法栈 (线程私有)四、方法区(元数据区)五、堆(线程共享)六、程序计数器(线程私有) 一、JVM 运行流…

React性能优化之Memo、useMemo

文章目录 React.memo两种方式参数应用场景 拓展useMemouseMemo(calculateValue, dependencies) 参考资料 React.memo React 的渲染机制,组件内部的 state 或者 props 一旦发生修改,整个组件树都会被重新渲染一次,即时子组件的参数没有被修改&…

华为华三思科 交换机基础配置一览

console密码修改 华为 user-interface console 0 authentication-mode password set authentication password cipher XXXXXXXXX华三 line aux 0 authentication-mode password set auth pass simple XXX思科 en configure terminal line console 0 password 123 login忘记…

TypeScript基础学习

目录 一、安装 1、下载国内镜像 2、安装 3、查看安装情况 4、使用例子 二、变量声明 1、规则 2、声明的四种方式 3、注意 4、类型断言 5、类型推断 6、变量作用域 三、基础类型(共11种) 1、Any 类型 2、Null 和 Undefined 3、never 类型…

【备战csp-j】 csp常考题型详解(2)

二.计算机网络。 1. TCP/IP 协议共有( )层协议 。 A.3 B.4 C.5 D.6 答案:B 解析: 2.Ipv4 地址是由( ) 位二进制数码表示的。 A.16 B.32 C.24 D.8 答案:B 解析:IP地址是IP协议提供的一种统一的地址格式。在目前使用的IPv…

Linux - 进程控制(进程替换)

0.引入 创建子进程的目的是什么? 就是为了让子进程帮我执行特定的任务 让子进程执行父进程的一部分代码 如果子进程想执行一个全新的程序代码呢? 那么就要使用 进程的程序替换 为什么要有程序替换? 也就是说子进程想执行一个全新的程序代码&a…

k8s概念-Job和CronJob

回到目录 Job 对于非耐久性任务,比如压缩文件,任务完成后,pod需要结束运行,不需要pod继续保持在系统中,这个时候就要用到Job。 Job负责批量处理短暂的一次性任务 (short lived one-off tasks),即仅执行一…

关于Linux中前端负载均衡之VIP(LVS+Keepalived)自动化部署的一些笔记

写在前面 整理一些 LVS 相关的笔记理解不足小伙伴帮忙指正 傍晚时分,你坐在屋檐下,看着天慢慢地黑下去,心里寂寞而凄凉,感到自己的生命被剥夺了。当时我是个年轻人,但我害怕这样生活下去,衰老下去。在我看来…

HCIP OSPF+BGP综合实验

题目 1、该拓扑为公司网络,其中包括公司总部、公司分部以及公司骨干网,不包含运营商公网部分。 2、设备名称均使用拓扑上名称改名,并且区分大小写。 3、整张拓扑均使用私网地址进行配置。 4、整张网络中,运行OSPF协议或者BGP协议…

Vue的标签<i>

在 Vue 中&#xff0c;<i> 标签用于表示图标&#xff08;Icon&#xff09;。它通常与图标字体或矢量图标库配合使用&#xff0c;用于展示不同的图标。<i> 标签是语义化的&#xff0c;用于表示图标的意义&#xff0c;而不仅仅是装饰性的。 在 Vue 中使用 <i>…

python森林生物量(蓄积量)数据处理到随机森林估算全流程

python森林生物量&#xff08;蓄积量&#xff09;估算全流程 一.哨兵2号获取/处理/提取数据1.1 影像处理与下载采用云概率影像去云采用6S模型对1C级产品进行大气校正geemap下载数据到本地NDVI 1.2 各种参数计算&#xff08;生物物理变量、植被指数等&#xff09;LAI&#xff1a…

网络空间安全及计算机领域常见英语单词及短语——网络安全(一)

目录 网络空间安全常见英语单词没事儿读着玩儿相关知识扫盲 CSDN的小伙伴们&#xff0c;我快回来咯&#xff01;网络空间安全常见英语单词 Cybersecurity 网络安全Network security 网络安全Information security 信息安全Data protection 数据保护Threat analysis 威胁分析Ri…

抖音引流推广的几个方法,抖音全自动引流脚本软件详细使用教学

大家好我是你们的小编一辞脚本&#xff0c;今天给大家分享新的知识&#xff0c;很开心可以在CSDN平台分享知识给大家,很多伙伴看不到代码我先录制一下视频 在给大家做代码&#xff0c;给大家分享一下抖音引流脚本的知识和视频演示 不懂的小伙伴可以认真看一下&#xff0c;我们…

【C++】总结9

文章目录 C从源代码到可执行程序经过什么步骤静态链接和动态链接类的对象存储空间C的内存分区内存池在成员函数中调用delete this会出现什么问题&#xff1f;如果在类的析构函数中调用delete this&#xff0c;会发生什么&#xff1f; C从源代码到可执行程序经过什么步骤 预处理…

印花税的本质和底层逻辑是什么?印花税降低是利好股市吗?

内容由LLM协助生成&#xff1a; 印花税是一种对特定交易或证券交易征收的税费&#xff0c;由政府机构收取。其本质和底层逻辑可以归结为以下几点&#xff1a; 资金来源&#xff1a;印花税是国家财政收入的一部分&#xff0c;用于满足政府的财政需求和公共支出。政府通过征收印花…

java学习路程之篇六、进阶知识、常用API、Arrays工具类、冒泡排序、选择排序、二分查找、正则表达式

文章目录 1、Arrays工具类2、冒泡排序3、选择排序4、二分查找5、正则表达式 1、Arrays工具类 2、冒泡排序 3、选择排序 4、二分查找 5、正则表达式

SQL UNION 操作符

UNION 操作符用于合并两个或多个 SELECT 语句的结果集。 请注意&#xff0c;UNION 内部的每个 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时&#xff0c;每个 SELECT 语句中的列的顺序必须相同。 SQL UNION 语法 SELECT column_name(s) FROM table1 …

Springboot MongoDB 事务

从版本4开始&#xff0c;MongoDB支持 事务。事务是建立在 会话之上的&#xff0c;因此&#xff0c;需要一个活跃的 ClientSession。 除非你在你的应用程序上下文中指定一个 MongoTransactionManager&#xff0c;否则事务支持是 DISABLED&#xff08;禁用的&#xff09;。你可以…

【Maven】Nexus3上传maven依赖jar

后端依赖 上次说到前端的批量tgz文件上传私服&#xff0c;其实服务端也有类似情况&#xff0c;我们有个私服也需要进行上传到私服&#xff0c;这里做个记录。因为上次有个小细节没注意白白传错了一遍&#xff0c;这里重新记录总结一下。 # 查看一下结构 $ tree -L 2 . |-- re…