如何在Liunx上执行脚本,检测指定的java项目或者某个pid进程获取到对应占据的内存大小,并且执行杀掉进程或者重启的操作——来自运维小白记录

48 阅读1分钟

话不多说,直接上代码,java可以直接复制,如果是已知道pid或者固定线程,那就直接改pid的值就行。

#!/bin/bashpid=$(ps aux | grep 'java -jar 项目运行路径和名称.jar' | grep -v grep | awk '{print $2}')  # 传入的jar是你java项目的运行路径if [ -z "$pid" ]; then    echo "Java进程不存在,脚本将尝试启动它。"    exit 0firss_kb=$(cat /proc/$pid/status | grep VmRSS | awk '{print $2}')echo "PID $pid RSS (KB): $rss_kb"MEMORY_THRESHOLD=700000 #kb算法,自己乘以1024等于mbif [ $rss_kb -gt $MEMORY_THRESHOLD ]; then    echo "内存超出阈值,正在重启Java进程。"fi#这里记得末尾是换行