开发者

Restart a process when cpu gets high

I've got a cron job checking for webserver (seeing if its active), which is handy..

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

I'm wanting after something similar for cpu usage. I'm running java backend which occasionally gets 70%+ cpu. I'm after a cron script to automatically kill/restart java if cpu load gets too high, how is this possible?开发者_StackOverflow中文版


You could use top in batch mode coupled with some code to parse its output. For example:

top -p 1234 -n 1 -b

Will output a snapshot of the state of process 1234.


I use this script and it is pretty cool

#!/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

give executable permissions and add this to crontab with proper path to this script.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜