簡易プロセス死活監視プログラムをc#で

わざわざブログ記事にまとめるほど内容があるわけではないんですが、
調べてみたら、すんごく簡単にできて便利だったので書き残しておきます。

プロセス死活監視というのもおこがましいかもしれない(笑)

やりたいこと

  1. 特定のプログラムが動作しているかをチェック
  2. 特定のプログラムが動作していて、尚且フリーズしていないか(反応があるか)
  3. 対象プログラムがフリーズしていれば再起動
  4. 対象プログラムが動作していなければ起動

これが最低限。ログ取ったり、何かしらで遠隔にアラート出せたらもっと便利だと思います。

きっかけ

僕は詳しいこと知らないんですが、おそらくちゃんと監視したいなら、NagiosとかZabbix
とか導入するべきなんでしょうけど、とにかく時間も知識もなく、本当に簡易的なもので
も、どうにか用意する必要があったので調べてみたことがきっかけです。

結果的に、30分もしないで書けたのでよかった。
NagiosとかZabbixは本格的に導入する必要が出たときに、改めて検討します。

ソースコード

え、これだけ?って思う人ほとんどだけだと思うけど、これだけです。
5秒ごとに、指定プログラム(このサンプルではメモ帳)のプロセスの有無と反応をチェックして、条件を満たしていなければ
起動するだけ。

本来であれば、Thread.Sleep()ではなくTimerコントロールとか使うといいかもしれません

最後に

一番最初がーーーーーっと一気に書いて動かしてみたときに、条件分岐の判定を
間違えて、すごい勢いでメモ帳がいくつも起動して焦りました(笑)

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です