Linux java jar启停脚本

这两个脚本主要用于管理Java应用程序的启停状态,方便快捷。

启用脚本

这段代码是一个shell脚本,它的目的是启动一个Java应用程序并检查其启动状态。

shell 复制代码
# 项目所在目录
PROJECT_OPTS=/opt/test

# 日志位置
LOG_OPTS=/opt/test/logs/log_info.log

# 启动程序
echo "$(date "+%Y-%m-%d %H:%M:%S") 开始启动 ........."  # 输出当前时间并显示开始启动的信息
nohup java -Djava.io.tmpdir=$PROJECT_OPTS/temp -jar $PROJECT_OPTS/test.jar >nohup.log 2>&1 &  # 使用nohup启动java程序,并将输出重定向到nohup.log文件中,2>&1表示将标准错误输出也重定向到标准输出

# 查询日志检测java程序是否启动成功
sleep 1s  # 等待1秒,给java程序一些启动时间
while [ -f $LOG_OPTS ]  # 当日志文件存在时
do
 current=`date +%Y-%m-%d\ %H:%M`  # 获取当前时间
 result=`grep "$current" $LOG_OPTS | grep "Started"`  # 在日志文件中查找包含当前时间和"Started"的关键字
 if [[ "$result" != "" ]]  # 如果找到了这样的关键字
 then
 echo "$(date "+%Y-%m-%d %H:%M:%S") 启动成功 ........."  # 输出当前时间并显示启动成功的信息
 break  # 结束循环
 else
 echo "$(date "+%Y-%m-%d %H:%M:%S") 正在启动,请稍等..."  # 输出当前时间并显示正在启动的信息
 sleep 5s  # 等待5秒,然后再次检查日志文件
 fi
done

这段脚本使用了一个while循环来检查日志文件,直到找到表示程序已经成功启动的关键词为止。在每次循环中,它都会输出当前的时间和状态信息,以便于监控程序的启动过程。

停用脚本

shell 复制代码
# 项目jar包所在目录
PROJECT_OPTS=/opt/test.jar

# 输出当前时间并显示查看$PROJECT_OPTS进程pid的信息
echo "$(date "+%Y-%m-%d %H:%M:%S") 查看$PROJECT_OPTS进程pid......"

# 使用ps命令查找含有$PROJECT_OPTS关键字的进程,排除掉grep和stop命令的进程,使用awk命令提取进程ID
ID=`ps -ef | grep "$PROJECT_OPTS" | grep -v "grep" | grep -v stop| awk '{print $2}'`

# 输出当前时间并显示停止$PROJECT_OPTS进程pid为$ID的信息
echo "$(date "+%Y-%m-%d %H:%M:%S") 停止$PROJECT_OPTS进程pid为$ID...."

# 使用kill命令停止进程ID为$ID的进程
kill $ID

这段代码的目的是查找并停止运行在系统中的某个指定jar包的进程。首先,它确定了项目jar包所在目录。然后,它使用ps -ef命令查找所有正在运行的进程,并通过grep过滤出包含项目jar包路径的进程。同时,它排除了使用grep命令本身的进程和名为stop的进程。最后,使用awk提取出这些进程的ID,并使用kill命令停止这些进程。

相关推荐
雾月555 分钟前
LeetCode 1292 元素和小于等于阈值的正方形的最大边长
java·数据结构·算法·leetcode·职场和发展
秋风起,再归来~13 分钟前
【Linux庖丁解牛】—进程优先级!
linux·运维·服务器
cosX+sinY32 分钟前
ubuntu 20.04 编译运行lio-sam,并保存为pcd
linux·ubuntu·机器人
24k小善1 小时前
Flink TaskManager详解
java·大数据·flink·云计算
想不明白的过度思考者1 小时前
Java从入门到“放弃”(精通)之旅——JavaSE终篇(异常)
java·开发语言
Lary_Rock1 小时前
Android 编译问题 prebuilts/clang/host/linux-x86
android·linux·运维
熬夜学编程的小王1 小时前
【Linux篇】理解信号:如何通过信号让程序听从操作系统的指令
linux·信号产生·软件条件产生信号
.生产的驴2 小时前
SpringBoot 封装统一API返回格式对象 标准化开发 请求封装 统一格式处理
java·数据库·spring boot·后端·spring·eclipse·maven
绵绵细雨中的乡音2 小时前
Linux进程学习【基本认知】
linux·运维·学习
猿周LV2 小时前
JMeter 安装及使用 [软件测试工具]
java·测试工具·jmeter·单元测试·压力测试