Redmineをmongrel_serviceでWindowsサービスにする

投稿日: 2012/1/5 4:02

当社では自前システム開発にRuby on railsで作成された
Redmineというプロジェクト管理ソフトウェアを利用しています。

Windows機上で実行しているのですが、
毎回システム起動時にRedmineをコマンドから起動するのが面倒なので
RedmineをWindowsサービス化してみました。

まずは普通にRedmineが起動するところまでは通っているものとします。

Railsアプリケーションは webric や mongrel、passengerなどで
HTTPサーバを上げることができますが、
今回はWebric互換の軽量サーバmongrelを利用します。

[shell]
# mongrelのインストール
gem install mongrel

# HTTPサーバの起動
ruby D:\rails\redmine\script\server -e production
[/shell]

mongrelでの正常動作が確認できたら一旦mongrelを停止します。
(Windowsの場合はCtrl+Cかコマンドプロンプトを無理やり閉じれば終了します)

続いて mongrel_service という mongrel をサービス化するソフトウェアをインストールします。

[shell]
# mongrel_serviceのインストール
gem install mongrel_service
[/shell]

環境によっては結構上記コマンドでハマりますので注意が必要です。
ちょっと前は mongrel_service のインストール時にビルドが必要となっていた気がしますが
今回は問題なくインストールできました。

mongrel_serviceのインストールに成功するとコマンドプロンプトから
mongrel_railsコマンドでRailsアプリケーションを
Windowsサービスに登録したり削除したりできるようになります。

追加については次のコマンドで実施します。
(パスや名称については適宜変更してください)

[shell]
# RailsアプリケーションをWindowsサービスとして追加
mongrel_rails service::install -N "Redmine" -c "D:\rails\redmine" -p 3000 -e production
[/shell]

-N 引数にはサービス名としてつけたい名前を、
-c 引数にはRailsアプリケーションを配置したディレクトリを、
-p 引数にはポート番号を、
-e 引数には実行する環境を指定します。

続いて「コントロールパネル」→「管理ツール」→「サービス」から追加したサービスを探します。

自動起動にする場合は該当サービスを右クリックして「プロパティ」を呼び出し、
「スタートアップの種類」を「自動」にすればOKです。
(上記画面は Windows 7 Professional で試しました)

手動で起動停止する場合は該当サービスを右クリックして「開始」や「停止」を選べばOKです。

また、追加したサービスを削除する場合はコマンドラインから

[shell]
# Redmineサービスの削除
mongrel_rails service::remove -N "Redmine"
[/shell]

とすれば消えるそうです。

以上の手順は次のWebサイトを参考にさせて頂きました。

MongrelをWindowsのサービスとして起動する – バリケンのRuby日記