Tech Sketch Bucket of Technical Chips by TIS Inc.

超入門! Godでプロセスを監視しよう!

Pocket

この記事はeXcale Developer's Blogから移転されたものです。

eXcale開発チームの松尾です。

今回は、eXcaleで利用しているプロセス監視ツールのGodについて基本的な使い方をご紹介します。


Godについて

GodはRubyで書かれたプロセス監視ツールで、任意のプログラムをバックグラウンドで起動し、そのプロセスを監視することができます。
設定ファイルをRubyで記述するため、プロセスの状況に応じて様々な処理を行うことが可能です。

なお、今回使用するGodのバージョンは記事執筆時点(2014年5月14日)で最新の0.13.4です。


Godのインストールと設定ファイル

インストールはgemを使います。
以下のコマンドを実行し、Godをインストールします。

Godは読み込む設定ファイルに基づいてプロセスの監視を行います。
設定ファイルは、以下のようにRubyで記述します。

このファイルの設定では、w.start に指定したコマンドを実行するプロセスを5秒ごとにチェックし、プロセスがなければ新しくプロセスを起動するようになります。

ここで紹介している以外にも様々な設定を行うことができます。詳しくは公式ページをご覧ください。


Godの基本的なコマンドについて

・Godのプロセス監視を開始する

以下のコマンドを実行すると、Godが起動し、プロセス監視を開始します。
-c のオプションでは、<path> にGodの設定ファイルのパスを指定します。

・Godでプロセスを起動/終了/再起動する

以下のコマンドを実行すると、Godでプロセスの起動/終了/再起動を行います。
引数の <name> には、Godの設定ファイルで登録する名前(config.godの2行目)を指定します。

・Godのプロセス監視を終了する

以下のコマンドを実行すると、Godが終了します。実行時には、Godに登録されているプロセスも同時に終了します。

登録されているプロセスを終了せずに、Godのみを終了する場合は、以下のコマンドを実行します。


実際にGodでプロセス監視を行う

それでは、実際にGodでプロセス監視を行います。

バックグラウンドで実行されるプログラムとして、適当なフォルダ(筆者の環境では/Users/test/tmp/)に、下記のhello.rbを作成します。

プログラムが作成できたら、設定ファイルを作成します。

設定ファイルが作成できたら、実際にGodを起動します。

これで、Godが起動し、設定ファイルで登録したプロセスを監視するようになります。

実際にプロセスをkillして、プロセス監視が行われていることを確認します。

コマンドを実行しているプロセス(PID: 2929)をkillすると、Godが新しいプロセス(PID: 2944)を起動しているのがわかります。

Godによるプロセス監視の例は以上です。以下のコマンドでGodを終了します。


最後に

今回は、プロセス監視ツールであるGodの基本的な使い方についてご紹介しました。
次回は、監視するプロセスの状況に応じて、Rubyのプログラムを実行する方法をご紹介したいと思います。

エンジニア採用中!私たちと一緒に働いてみませんか?