sh 在一秒钟内重复评估CPU占用最多的CPU(至少保持一个核心忙于100%)并且杀死p

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sh 在一秒钟内重复评估CPU占用最多的CPU(至少保持一个核心忙于100%)并且杀死p相关的知识,希望对你有一定的参考价值。

#!/bin/bash

declare -a pids

for i in {1..10}
do 
	toptask=$(ps -eo pcpu=,pid= | sed 's/^ *//' | tr -s ' ' '\t' | sort -grk1 | head -1)
	cpu=$(echo $toptask | tr -s ' ' '\t' | cut -f1 | cut -d. -f1)
	pid=$(echo $toptask | tr -s ' ' '\t' | cut -f2)
	if (( cpu > 100 )); then
		pids+=($pid)
	fi
	
	sleep 0.1
done

if [ ! -z ${pids[*]} ]
then
	pid=$(echo ${pids[*]} | tr ' ' '\n' | sort | uniq -c | sed 's/^ *//' | tr -s ' ' '\t' | sort -grk1 | head -n1 | cut -f2)
	kill -9 $pid
	echo "Killed $pid. That was a rogue one!"
else
	echo "No rogue process. Nothing done!"
fi

以上是关于sh 在一秒钟内重复评估CPU占用最多的CPU(至少保持一个核心忙于100%)并且杀死p的主要内容,如果未能解决你的问题,请参考以下文章

查看当前cpu和内存占用最多的的程序

查看linux占用内存/CPU最多的进程

查看linux占用内存/CPU最多的进程

查看Linux占用内存/CPU最多的进程

linux怎么查看占用内存或cpu最多的进程

linux查看占用的CPU内存资源最多