« 出発を祝って RanRan へ | メイン | とんかつを食った »
2005年07月16日
プロセス管理プログラム
CEEK.JP NEWS は、2年くらい前に作ったプログラムで動いています。今もそうだけど、2年前は、かなりへっぽこなプログラマだったので、ソースもぐちゃぐちゃです。というか、もう読みたくないようなコードですね。
常駐プログラムじゃないのに、以下が宣言されていない始末。
use strict;
まぁ。それとはあまり関係ないんだけど、正規表現が多いし、エラー処理が適当なおかげで、プロセスがずっと立ち上がったままというのが多々あるわけです。どこかで無限ループしているような気がするのだけど、原因を確かめる気にすらならんorz
ということで、暴走しているっぽいプロセスがあったら、勝手に kill すうようなプログラムを作成しました。
kill の部分をメール送信にするのもいいかもしれない。
$ps = `ps aux | grep perl`;
この grep で、監視するプログラムを調整します。ユーザー名も指定しておく方がいいです。だって kill できないもん。
$max = 5;
この時間(分)を過ぎたプロセスを抽出するわけですな。分単位で書くのだけど、あまり長く設定すると無理。日付をまたぐ処理がかなり適当なので。
あとは、このプログラムを Cron で定期的に実行すれば監視できます。が、このプログラムが立ち上がらないほどサーバに負荷がかかっている場合は、無理です。諦めてください。
# Start Time の部分は要らないような気がしてきた。 # Ps Time だけをチェックする方がよさげ。ま。せっかく書いたので、消さないでそのまま。
自己責任でどうぞ。
そういえば、リモートで物理的にリセットボタンを押す装置が欲しいな。前にも書いたっけ?
2005年07月16日 23:15 | Programming
トラックバック
コメント
> リモートで物理的にリセットボタンを押す装置が欲しいな。
USBitで、ラジコンカー付きで、是非どうぞ!
(冗談です)
投稿者 yukoba : 2005年07月17日 02:55
> リモートで物理的にリセットボタンを押す装置が欲しいな。
リセットボタンにリレーとかフォトカプラとかつけてもいいならPICNICとか使えばそんな難しくは無いと思います。
投稿者 Hotspring : 2005年07月17日 16:39
>> yukoba さん
普通に欲しいなぁ。
>> Hotspring さん
USB-IO がいいかなー。とか思ってます。
イーサネット付きのを買うなら、玄箱とか買っていじりたい気分です。
投稿者 ceekz : 2005年07月18日 07:36
以前増井さん(pitecan.comの人)が2chで言ってたんだけど,
ejectコマンドでCD-ROMドライブを開け閉めして,
そのふたに棒を付けておけば,向かいに置いたマシンの
リセットボタンが押せるのではないか,と言ってた.
これをぜひ実践していただきたい.
投稿者 takot : 2005年07月20日 21:31
>> takot さん
(・∀・)イイ!!
投稿者 ceekz : 2005年07月21日 03:23
DELL、hpあたりの箱なら、リモートコンソールのカードを付けられます。
新規購入時に 1万円くらいの追加出費が必要になりますが。
意外と便利。
投稿者 reservoirムロタ : 2005年07月21日 09:41
>> reservoirムロタ さん
SSH とは、違うものなのでしょうか?
投稿者 ceekz : 2005年07月21日 22:36