原文链接:https://blog.csdn.net/weixin_44821965/article/details/130039771
前言最近看到了项目中重启Java服务的.sh文件,对sh文件里面的命令产生了好奇,于是研究了一下脚本里面每一个命令的具体意义
【资料图】
一、.sh文件内容.sh文件里面的内容如下:
ps-ef | grep plugins-web | grep -v grep | awk "{print "kill -9" $2}" | sh nohup java -javaagent:/apps/aaagent/apm-javaagent.jar -jar ./RESOURCE_NAME7--appllo.env=sit--appllo.accesskey = 1111--appllo.bootstrap.namespaces=RDSystem.application >.nohup-plugs.out 2>&1 &12这个脚本命令很长,具体的含义如下1、ps -ef: 这个命令会列出所有正在运行的进程。
2、grep plugins-web: 这个命令会在上一步的输出结果中,查找包含 “plugins-web” 的进程。
3、grep -v grep: 这个命令会过滤掉上一步输出结果中包含 “grep” 的行,以防止误杀其他进程。
4、awk ‘{print “kill -9” $2}’: 这个命令会使用 awk 工具从上一步输出的进程信息中提取出进程的 PID(进程ID),并生成一个 kill 命令,以杀死该进程。其中 $2 表示第二个字段,即进程的 PID。
5、sh: 这个命令会将上一步生成的 kill 命令传递给 shell 执行。
6、nohup java -javaagent:/apps/aaagent/apm-javaagent.jar -jar ./RESOURCE_NAME7–appllo.env=sit–appllo.accesskey=1111–appllo.bootstrap.namespaces=RDSystem.application >.nohup-plugs.out 2>&1 &:这个命令会启动一个新的 Java 进程。其中:
6.1 nohup: 这个命令会使进程忽略挂起信号(SIGHUP),并将标准输出和标准错误输出重定向到文件 “.nohup-plugs.out” 中。这意味着即使用户退出了当前会话,该进程也会继续运行。
6.2 java: 这个命令会启动 Java 虚拟机。
6.3 -javaagent:/apps/aaagent/apm-javaagent.jar: 这个选项会指定 Java 应用程序监控代理的路径。
6.4 -jar ./RESOURCE_NAME7–appllo.env=sit–appllo.accesskey=1111–appllo.bootstrap.namespaces=RDSystem.application: 这个选项会指定要运行的 Java 应用程序的 JAR 文件和应用程序参数。
6.5 >.nohup-plugs.out 2>&1 &: 这个命令会将标准输出和标准错误输出重定向到文件 “.nohup-plugs.out” 中,并使进程在后台运行。
-javaagent的含义-javaagent 是 Java 虚拟机启动参数之一,它用于指定一个 Java 应用程序监控代理(Java Agent)。Java Agent 是一个特殊的 Java 应用程序,它能够在 JVM 运行期间与应用程序一起运行,并可以访问和修改 JVM 的内部状态。Java Agent 可以用于实现各种功能,如性能分析、代码注入、错误监控、安全检查等。
使用 -javaagent 参数启动 Java 应用程序时,Java 虚拟机会在启动时加载指定的 Java Agent,并调用它的 premain 方法。premain 方法是 Java Agent 的入口方法,它可以用于初始化 Java Agent,注册钩子函数(Hook Function),或者在 JVM 启动时执行一些操作。当 Java 应用程序结束时,Java 虚拟机会调用 Java Agent 的 agentmain 方法,该方法可以用于执行一些清理操作或者监视应用程序运行期间的状态。
通常情况下,使用 Java Agent 可以帮助开发人员更好地了解和优化 Java 应用程序的性能,识别潜在的问题和瓶颈,并提供一些高级的功能和服务。在实际使用中,Java Agent 通常作为第三方库或工具的一部分提供,例如 Java 应用程序性能分析工具、代码注入框架、错误监控系统等。
二、自己编写重启Java进程的脚本编写重启Java项目的Shell脚本,需要考虑以下几个方面:1、检查Java进程是否存在,如果存在则需要杀掉进程。
2、检查日志文件是否存在,如果存在则需要备份。
3、启动Java进程。
4、检查Java进程是否启动成功,如果没有则需要进行相应处理。
示例
#!/bin/bash
# 定义Java进程的名称APP_NAME=your-app-name.jar
# 定义Java进程的日志文件路径LOG_PATH=/var/log/your-app-name.log
# 定义备份日志文件的目录BACKUP_DIR=/var/log/backup
# 定义Java进程的启动参数JAVA_OPTS="-Xmx1024m -Xms1024m -XX:MaxPermSize=256m"
# 检查Java进程是否存在PID=$(ps -ef | grep ${APP_NAME} | grep -v grep | awk "{print $2}")if [[ -n ${PID} ]]; then echo "Java process is running, PID is ${PID}. Killing..." kill -9 ${PID}fi
# 检查日志文件是否存在if [[ -f ${LOG_PATH} ]]; then echo "Log file exists. Backing up..." if [[ ! -d ${BACKUP_DIR} ]]; then mkdir ${BACKUP_DIR} fi cp ${LOG_PATH} ${BACKUP_DIR}/$(date +%Y%m%d%H%M%S).log echo "Log file backed up to ${BACKUP_DIR}."fi
# 启动Java进程nohup java ${JAVA_OPTS} -jar ${APP_NAME} > ${LOG_PATH} 2>&1 &
# 检查Java进程是否启动成功sleep 10PID=$(ps -ef | grep ${APP_NAME} | grep -v grep | awk "{print $2}")if [[ -n ${PID} ]]; then echo "Java process started successfully, PID is ${PID}."else echo "Failed to start Java process."fi
该脚本中的APP_NAME、LOG_PATH和BACKUP_DIR需要根据实际情况进行修改。JAVA_OPTS可以根据需要添加或修改Java进程的启动参数。
具体在Linux系统上创建.sh脚本vi shart.sh
vim创建.sh文件,按 i 进去到插入模式,编辑文本后,ESC 退出插入模式,按 : 输入指令,wq保存退出,q直接退出。
创建完后的文件暂时还不能运行,需要先赋予权限
chmod 755 shart.sh
755具体是:文件所有者获得 读写执行 权限(7),文件所有者的同用户组其他用户获得 读执行 权限(5),其他用户获得 读执行 权限。
执行权限(1)
写权限(2)
读权限(4)
./start.sh
执行脚本
总结本篇博客介绍重启java进程的脚本以及如何编写重启Java项目的Shell脚本。
标签:
原文链接:https: blog csdn net weixin_44821965 article details 130039771前言最近看到了项目中重启Jav
T恤虽然是比较经典的基础款上衣,但并不是唯一可以采用的设计。 上图中的米色T恤搭配蓝色花朵图案,将时尚
1、1 安装AUTOCAD2010序列号:2、356-723784223、Productkey:001B14、2
中国质量新闻网讯为深化“放管服”改革,进一步优化营商环境,夯实信用监管基础,激发广大经营主体活力...
新华社苏瓦5月11日电努库阿洛法消息:南太平洋岛国汤加附近海域11日发生7 6级地震。目前尚无人员伤亡和财产
富德生命安行无忧两全保险(全能版)是富德生命人寿承保的一款人寿保障产品,该产品性价比高,可选择保障30 4
据“海南应急管理”微信公众号消息,海南省气象局于5月11日6时20分发布暴雨预警:受弱冷空气和切变线影...
失业补助金的领取标准为本市当年城镇居民最低生活保险标准。接下来跟社保网小编一起来看看上海失业补助金领
同花顺数据中心显示,中银绒业5月10日获融资买入114 16万元,占当日买入金额的3 65%,当前融资余额9210 28
1、光驱面板上有一个强制退出孔,在光驱出现故障无法退出时非常有用。我们还需要准备一根牙签或者一个回形
中新网5月11日电 ﻪ据中央气象台网站消息,11日至13日,广东、广西、海南岛、云南等地的部分地区有中到大
正文近日进行的瑞士女超季后赛1 4决赛首回合角逐中,中国小将张琳艳创历史,强行推空门戏耍对方门将,并最
根据中银基金管理有限公司(以下简称“本公司”)与兴业银行股份有限公司签署的基金销售协议及相关补充...
琼中县气象台2023年05月11日01时29分发布雷电黄色预警信号:我县01:30-10:00可能发生雷电活动,可能会出现
5月10日北向资金减持2 92万股康德莱。近5个交易日中,获北向资金减持的有4天,累计净减持30 05万股。近20个
1、油纸伞,起源春秋战国时期,是我国最为古老的主要雨具,解放前及初期一直沿用。2、它是鲁班的妻子云氏
被曝性侵教授承认两人保持不正当关系
音频解说一、甘肃省张掖市天气预报1、肃南县气象台2023年05月10日17时40分发布霜冻蓝色预警信号。2、预计明
土耳其经济政策研究基金会主任居文·萨克近日在土耳其首都安卡拉接受新华社记者专访时说,中国式现代化...
盼望着,盼望着,终于等到《庆余年2》的消息,这次不是网传开机消息,也不是选角通知,而是正儿八经的官宣
X 关闭
X 关闭