勉強用スクリプトを 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 権限で動かすなと言う教訓でした。