Ubuntuでシステムがビジー過ぎたときリブートする

monitを調べてみたがシステムがビジー状態の時リブートするようなことをするのがどうやっていいかわからなかった、もしかしたらこういう機能はないのかもしれない、ので、自作してみることにした。

このプログラムはcronで定期的に動かして、システムがビジー状態だったらリブートする。ビジー状態の判定は、/proc/loadavgを見ればいいと思う。そこで、C言語で以下のプログラムを作ってみた。

/proc/loadavgの出力は左から、1分、5分、15分の平均負荷なので5分後をみて、それが20を越えていたらリブートするようにした。20は適当に決めたので、これくらいでいいのかはよく分からない。リブートは/sbin/rebootを直接実行するようにした。

コンパイル

/sbin/rebootはルートしか実行できないので、ルートで実行しないとならない。
あとはこれをcronに登録する。/etc/crontabを編集して以下の一行を加えた。

ログとかは全然とってないので、ちゃんと動いているのか調べられない。あとで直したい。

Leave a Reply

Your email address will not be published. Required fields are marked *

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)