Webアプリケーション開発時などに依存するバックグラウンドプロセスを管理するツールとして rubyで作られた foreman というツールがあります

Procfileという名前のファイルに

worker: ./bin/worker
web: plackup web.psgi

と書いて

$ foreman start

とやると指定したプロセスを起動してくれるらしいです。

cho45やtokuhiromからの提案もあったので、Procletをベースに同様の機能を持つprocletコマンドを作り、Procletに同梱してリリースしました。

https://metacpan.org/module/Proclet

バージョン0.11で追加されました。

インストールは

$ cpanm Proclet

使い方

実装されていない機能もあるけどだいたいforemanと一緒です

Procfileを用意して proclet start します

$ cat Procfile
worker: ./bin/worker
web: plackup web.psgi
$ proclet start

止めたい時はctrl-cです

起動するとこのようにログが出力されます

proclet-cmd.png

サービスの起動する数を変更したい場合は -c (—concurrency) を使います

$ proclet start -c worker=2,web=1

サービスごとログに色を付けたい場合は —color オプションを追加します

$ proclet start --color

環境変数は .env というファイルから読み込みます

$ cat .env
FOO=bar
BAZ=qux

.env以外から環境変数を読み込みたい場合は -e (—env) で指定します

デフォルトの起動オプションは .foremanファイルを置く事で指定できます。起動オプション名の長い方を使い、YAML形式で保存します

$ cat .foreman
concurrency: worker=2,web=1
color: 1

これで複数のプロセスを必要とするWebアプリケーション開発も捗りますね!足りない機能のpullreqお待ちしております。

このブログ記事について

このページは、Masahiro Naganoが2012年9月13日 00:03に書いたブログ記事です。

ひとつ前のブログ記事は「File::RotateLogs っていうログをファイルに記録していくモジュールを書いた」です。

次のブログ記事は「Proclet::Declare リリースしました Re: Proclet::Declare について考えた 」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

ウェブページ

OpenID対応しています OpenIDについて
Powered by Movable Type 4.27-ja