【Linux】linux下使用命令修改jar包内某一个文件中的内容并重新运行jar程序

linux下使用命令修改jar包内某一个文件中的内容并重新运行jar程序

  • 一、背景描述
  • 二、vi命令编辑
  • 三、启动程序
  • 四、拓展--启动脚本

一、背景描述

需求:发现线上的 iotp-irsb-server-v1.0.0.2.jar 包中配置文件的日志级别配置错误,需要在线修改jar包中文件的application-prod.yml的日志级别配置,修改完成后并重启该jar包。

二、vi命令编辑

进入到该jar包所在的目录,使用 vi 命令打开 jar 包内文件列表。

1、vi iotp-irsb-server-V1.0.0.2.jar

vi iotp-irsb-server-V1.0.0.2.jar

如下图所示:
在这里插入图片描述
2、在vi后弹出的文件列表界面根据光标选中文件并回车。

  • vi后,输入/ 然后再输入要过滤的内容进行过滤。
  • 如输入/yml 进行yml的快速定位,点击回车,然后即可根据光标选择文件,定位到相应的文件后,再次回车,进入文件内容修改界面。
/yml

如下图所示:
在这里插入图片描述

3、内容修改并保存

  • 进入到文件编辑页面后,此时只是只读文件,输入 i 字母后,只读文件就会变成可编辑文件,然后进行内容编辑即可。
  • 修改完内容后,按下 esc 键退出编辑,输入 :wq 进行内容保存,退回到文件选择列表界面。

在这里插入图片描述

4、最后再输入冒号及q!完成退出,至此jar包中文件内容已完成修改。

在这里插入图片描述

三、启动程序

此时程序还正在运行,正常情况下需要先杀掉进程,然后再使用命令启动即可。

Tips:像这种启动jar命令一般都会有启动脚本,此时修改完内容之后,可能只需要启动脚本即可重启成功。

步骤如下:

1、查找该程序的进程,ps -ef |grep java

ps -ef |grep java

ps:将某个进程显示出来
-A:显示所有程序。
-e:此参数的效果和指定"A"参数相同。
-f:显示UID,PPIP,C与STIME栏位。 grep命令是查找,中间的|是管道命令 是指ps命令与grep同时执行

这条命令的意思是显示所有java的进程。

2、杀掉此进程,kill[参数][进程号]

kill -9 4394

kill就是给某个进程id发送了一个信号。默认发送的信号是SIGTERM,而kill
-9发送的信号是SIGKILL,即exit。exit信号不会被系统阻塞,所以kill -9能顺利杀掉进程。当然你也可以使用kill发送其他信号给进程。

3、启动该jar程序,nohup java -jar jar包名

nohup java -jar iotp-irsb-server-V1.0.0.2.jar

补充:
(1) CTRL+Z挂起进程并放入后台
(2) jobs 显示当前暂停的进程
(3) bg %N 使第N个任务在后台运行(%前有空格)
(4) fg %N 使第N个任务在前台运行

四、拓展–启动脚本

修改一下命令然后当作启动脚本即可。比如此脚本名字叫做: autostart.sh ,里面内容是以下命令:

#!/bin/sh
ps -ef | grep iotp-irsb-server | grep -v grep | awk '{print $2}' |xargs kill -9
cd /home/admin/web/iotp_irsb/app && (nohup java -jar -Dspring.profiles.active=prod iotp-irsb-server-V1.0.0.2.jar  -Xms256m -Xmx1024m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m &) && tail -f nohup.out;

启动脚本链接地址:java 程序自启动脚本文件

本文完结!

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

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

相关文章

MFC的定义和实际操作方法

我是荔园微风,作为一名在IT界整整25年的老兵,今天从另一个角度来看一下MFC。 完整的应用一般由四个类组成:CWinApp应用类,CFrameWnd窗口框架类,CDocument文档类,CView视类 过程:CWinApp创建CF…

ubuntu iptables开机自启动

一、配置ubuntu路由转发 用在一台电脑有多个网卡的情形下,一个网卡5网段、一个网卡8网段,8网段是网络出口,所以5网段的设备需要入网的话,要路由转发。 sudo iptables -t nat -A POSTROUTING -s 192.168.5.0/24 -j SNAT --to-sou…

STM32速成笔记—概述

文章目录 前言一、专栏简介二、前期准备三、编程规范以及程序架构简介1. 编程规范2. 程序架构 四、STM32F103ZET6简介五、程序模板六、ST-Link调试6.1 硬件连接6.2 Keil配置6.3 下载调试 前言 本人技术菜鸟一枚,2022年大学毕业,大学加入老师实验室&#…

chatgpt赋能python:如何在Python中创建模块:完整指南

如何在Python中创建模块:完整指南 如果你是一位Python开发者,你肯定需要用到模块。模块使得代码更容易组织和管理,并且可以复用许多代码片段, 提高代码的可重用性。在Python中,模块是一组相关函数,方法和变…

oracle expdp导致system表空间满

今天下午,项目经理反馈有套11204版本数据库无法使用了,立刻登录检查环境发现SYSTEM表空间使用率99.99%了 TABLESPACE_NAME MAXSIZE_MB ACTUALSIZE_MB USED_MB FREESPACE_MB SPACE USAGE ----------------- ---------- ------------- ---------- …

Trace32 SRST和TRST、system.attach 和 system.up的区别

目录 TRST-Resets the JTAG TAP controller and the CPU internal debug logic SRST- Resets the CPU core and peripherals SYStem.Mode Down SYStem.Mode Nodebug SYStem.Mode Prepare SYStem.Mode Go SYStem.Mode Attach SYStem.Mode StandBy SYStem.Mode Up 下图为…

ProGuard 进阶系列(二)配置解析

书接上文,从开源库中把代码下载到本地后,就可以在 IDE 中进行运行了。从 main 方法入手,可以看到 ProGuard 执行的第一步就是去解析参数。本文的内容主要分析源码中我们配置的规则解析的实现。 在上一篇文章末尾,在 IDE 中&#x…

大数据Doris(三十七):Spark Load导入HDFS数据

文章目录 Spark Load导入HDFS数据 一、准备HDFS数据 二、创建Doris表 三、创建Spark Load导入任务

【Reids】搭建主从集群以及主从数据同步原理

目录 一、搭建主从集群 1、介绍 2、搭建 二、数据同步原理 1、全量同步 2、主节点如何判断是不是第一次连接 3、增量同步 4、优化主从数据同步 一、搭建主从集群 1、介绍 单节点的Redis并发能力存在上限,要提高并发能力就需要搭建主从集群,实现…

【LLM GPT】李宏毅大型语言模型课程

目录 1 概述1.1 发展历程1.2 预训练监督学习预训练的好处 1.3 增强式学习1.4 对训练数据的记忆1.5 更新参数1.6 AI内容检测1.7 保护隐私1.8 gpt和bert穷人怎么用gpt 2 生成式模型2.1 生成方式2.1.1 各个击破 Autoregressive2.1.2 一次到位 Non-autoregressive2.1.3 两者结合 2.…

RabbitMQ虚拟主机无法启动的原因和解决方案

RabbitMQ虚拟主机无法启动的原因和解决方案 摘要: RabbitMQ是一个广泛使用的开源消息代理系统,但在使用过程中可能会遇到虚拟主机无法启动的问题。本文将探讨可能导致该问题的原因,并提供相应的解决方案,以帮助读者解决RabbitMQ虚…

第五章 模型篇: 模型保存与加载

参考教程: https://pytorch.org/tutorials/beginner/basics/saveloadrun_tutorial.html 文章目录 pytorch中的保存与加载torch.save()torch.load()代码示例 模型的保存与加载保存 state_dict()nn.Module().load_state_dict()加载模型参数保存模型本身加载模型本身 c…

K8s 中 port, targetPort, NodePort的区别

看1个例子: 我们用下面命令去创建1个pod2, 里面运行的是1个nginx kubectl create deployment pod2 --imagenginx当这个POD被创建后, 其实并不能被外部访问, 因为端口映射并没有完成. 我们用下面这个命令去创建1个svc &#xff…

chatgpt赋能python:Python怎样让画笔变粗

Python怎样让画笔变粗 Python是一门强大的编程语言,不仅适用于数据分析和机器学习等领域,也可以用来进行图像处理。在Python中,我们可以使用Pillow库来进行图像操作。在本篇文章中,我们将介绍如何使用Python和Pillow来让画笔变粗…

vue2_markdown的内容目录生成

文章目录 ⭐前言⭐引入vue-markdown💖 全局配置💖 渲染选项💖 取出markdown的标题层级 ⭐结束 ⭐前言 大家好!我是yma16,本文分享在vue2的markdown文本内容渲染和目录生成 背景: 优化个人博客功能&#xf…

delphi的ARM架构支持与System.Win.WinRT库

delphi的ARM架构支持与System.Win.WinRT库 目录 delphi的ARM架构支持与System.Win.WinRT库 一、WinRT 二、delphi的System.Win.WinRT库 2.1、支持ARM芯片指令 2.2、基于WinRT技术的特点 2.3、所以使用默认库而未经转化的服务端应用并不支持ARM架构服务器 2.4、对默认库…

【Linux】初步认识Linux系统

Linux 操作系统 主要作用是管理好硬件设备,并为用户和应用程序提供一个简单的接口,以便于使用。 作为中间人,连接硬件和软件 常见操作系统 桌面操作系统 WindowsmacOsLinux 服务器操作系统 LinuxWindows Server 嵌入式操作系统 Linux …

深度学习图像分类、目标检测、图像分割源码小项目

​demo仓库和视频演示: 银色子弹zg的个人空间-银色子弹zg个人主页-哔哩哔哩视频 卷积网路CNN分类的模型一般使用包括alexnet、DenseNet、DLA、GoogleNet、Mobilenet、ResNet、ResNeXt、ShuffleNet、VGG、EfficientNet和Swin transformer等10多种模型 目标检测包括…

Java关键词synchronized

目录 一、通过卖票系统观察多线程的安全隐患 二、synchronized的基本知识 1.使用synchronized的原因 2.synchronized的作用 3.synchronized的基本格式 a.synchronized加在方法名前 b.synchronized用在方法中 4. Java锁机制 5.synchronized注意事项 三、使用synchronize…

Java Logback日志框架概述及logback.xml详解

日志技术具备的优势 可以将系统执行的信息选择性的记录到指定的位置(控制台、文件中、数据库中)。 可以随时以开关的形式控制是否记录日志,无需修改源代码。 日志体系结构 Logback日志框架 Logback是由log4j创始人设计的另一个开源日志组件&#xff0…