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

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

ps -ef | grep dvmrms | grep -v grep | awk '{print $2}' | xargs kill -9

nohup java -jar dvmrms.jar >/dev/null 2>&1 &

sleep 10s

tail -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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux 下查看 jar 包版本的方法比较直接明了。通常,我们使用 Java 自带的命令行工具 `java` 或 `javap` 来查看 jar 文件的内容。 ### 使用 `jar` 工具 首先需要安装 `jar` 工具,通常 Linux 发行版自带此工具。可以通过运行下面的命令检查是否已经安装: ```bash java -version ``` 如果已安装,可以继续使用 `jar` 工具。以下是如何查看 jar 文件内容的基本步骤: 1. **提取信息**: 可以使用 `-tvf` 参数配合 `jar` 命令来查看 jar 文件内的所有文件,并列出它们的详细信息。例如: ```bash jar tvf 名称.jar | grep VERSION ``` 这里的 `名称.jar` 需替换为你想要查看的 jar 文件名。`grep VERSION` 部分用于过滤出包含 "VERSION" 的信息,以帮助找到特定版本号的信息。实际上,这一步不是必要的,因为 jar 文件内部结构包含了文件版本信息,但通过这个命令可以更直观地查看到文件列表。 2. **直接查找版本**: 如果 jar 文件的目录结构有明确表示版本的文件,如 `META-INF/MANIFEST.MF` 通常会包含版本信息。你可以使用类似的方式直接查找这部分内容: ```bash jar xf 名称.jar META-INF/MANIFEST.MF > manifest.txt cat manifest.txt | grep 'Build-Number' ``` 上述命令将 MANIFEST.MF 内容解压到名为 `manifest.txt` 的文件,然后通过 `cat` 和 `grep` 查找包含版本号的字段。 ### 使用 `java` 命令行工具 如果你正在尝试启动某个用 jar 文件封装的应用程序,可以直接使用 `java` 命令查看版本: 1. 启动应用前,先获取 jar 文件的路径,比如 `/path/to/yourapp.jar`。 2. 打开终端并输入如下命令: ```bash java -jar /path/to/yourapp.jar ``` 当程序启动并运行完毕后,在控制台输出的最后一行可能会显示该应用程序的版本信息。 ### 相关问题: 1. 是否存在不需要打开 jar 文件即可查看版本的命令? 2. 查看 jar 文件版本时,如何处理无法直接解析版本信息的情况? 3. 在脚本自动化获取 jar 版本的过程应该怎样编写?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值