インフラエンジニアとして眠れない日々を救った秘策とは?

これも8年前の出来事です。とあるプロジェクトでインフラを担当していたときのことです。

 JAVAの某ベンダーのアプリケーションサーバが1ヶ月に1度程の頻度で原因不明のExceptionを出して死んでました。
幸いにも、2台構成で冗長構成をとっており、プログラム側でフェイルオーバーする実装だったので大事には至らなかったのですが、年末年始や土日の深夜帯など間の悪い時間帯に発生していたので、インフラ担当としては安心して眠ることができない日々を送っておりました。

 ベンダーに調査依頼を出しても調査はなかなか進まず、そのような未解決の状態が数カ月間続いていたので、私はインフラ担当としてある提案をしました。

daemontoolsとは

 ちょうどその頃qmailの作者でおなじみのdjb氏のツールにはまっている頃でして、djb氏が作者であるdaemontoolsがこの状況で使えるのではないかと...。
 daemontoolsは、指定プログラムをデーモン化、制御、監視をしてくれるツールの総称でして、同名のユーティリティでCD-ROMのエミュレーションをしてくれる方ではありません。この監視というのがミソで、プロセス起動後ずっとそのプロセスを監視し続け、プログラムが異常終了した場合自動的に再起動してくれます。

 そういったわけで、提案が了承されJAVAの某アプリケーションサーバを起動するrunスクリプトを書くことになりました。JAVAプログラムのrunスクリプトを書くのは大分手応えがあった感じでした。ですが、これを設定した後、勝手にリカバリーしてくれたときの開放感といったら、それはもう語り尽くせないものがありました。これで、やっと安眠できると...。

おかげで、枕を高くして眠れましたとさ。以後、djb様には足を向けて眠れません。