勉強用スクリプトを root で実行すると危険でした(あたりまえ)
とあるプロセスを監視して、おかしくなったら再起動するようなスクリプトを書きたくて、Python に挑戦してみました。
今回は Python ネタというより、そのときの失敗談です。
PIDファイルを読み取ってそのプロセスを kill するようにしたかったのですが、
プロセス初回起動時は PIDファイルがありません。
手抜きも兼ねて、下記のようなコードを書いてみました。
#なんでこんな変なプログラムなのかは触れないでください(笑)
try:
f = open('pidfile', 'r')
pid = f.read()
f.close()
except Exception, e:
pid = '1'try:
os.kill(int(pid), 15)
聡明な読者の方はおわかりかと思いますが、
これだと、初回は PID=1、つまり init を殺してしまいます。
スクリプトを実行したとたんコンピュータが再起動してしまい大慌てしました。
練習用のいい加減なコードを root 権限で動かすなと言う教訓でした。