0
我想修改下面的脚本,只在进程/ PID号占用CPU的50%以上时才运行。任何人都知道如何获取这些信息?我只想使用jstack创建一个线程转储,如果特定pid的CPU利用率超过50%。检索进程的CPU利用率
#!/bin/bash
if [ $# -eq 0 ]; then
echo >&2 "Usage: jstackSeries [ [ ] ]"
echo >&2 " Defaults: count = 10, delay = 1 (seconds)"
exit 1
fi
pid=$1 # required
count=${2:-10} # defaults to 10 times
delay=${3:-1} # defaults to 1 second
while [ $count -gt 0 ]
do
jstack $pid >jstack.$pid.$(date +%H%M%S.%N)
sleep $delay
let count--
echo -n "."
done
带'-p'的'ps'指定您感兴趣的pid,并且可以使用适当的'-o'格式说明符(特别是'%cpu')来获取CPU负载百分比。有关更多详情,请参阅man ps。 (例如:'ps -p 14557 -o%cpu'目前在我的Linux机器上显示1.7;该进程恰好是Firefox的不活动副本。) – keshlam