当cpu变高时重启进程

时间:2011-07-01 03:30:35

标签: bash cron

我有一个cron工作检查webserver(看看它是否有效),这很方便..

http://pastebin.com/raw.php?i=KW8crfzh

我想在cpu使用之后做类似的事情。我正在运行java后端,偶尔会获得70%+ cpu。我正在使用cron脚本自动杀死/重启java,如果cpu负载过高,这怎么可能?

2 个答案:

答案 0 :(得分:1)

您可以在批处理模式下使用top并结合某些代码来解析其输出。例如:

top -p 1234 -n 1 -b

将输出进程1234的状态快照。

答案 1 :(得分:1)

我使用这个脚本非常酷

#!/bin/bash
# author = Jaysunn

# Log
LOGFILE=/var/log/load_kill_log

# log the process causing the load at the time.
PSFILE=/var/log/ps_log

# Obtain the server load
loadavg=`uptime |cut -d , -f 4|cut -d : -f 2`
thisloadavg=`echo $loadavg|awk -F \. '{print $1}'`

if [ "$thisloadavg" -ge "10" ]; then

ps auxfww >> $PSFILE
date >> $LOGFILE

# Issue the command of choice.  This can be any shell command.
## Put the command which restarts ..

fi

提供可执行权限并将其添加到crontab,并使用此脚本的正确路径。