∞GodとRVMの連携
god
(または`init.d`で起動する必要がある他のアプリケーション)をRVMと連携するには、ラッパースクリプトを生成する必要があります。つまり、正しいgemsetをロードする代替実行ファイルを設定する必要があります。
例として、management
gemset(別名`ruby@management`)の`ruby`下にgod
をインストールした場合、以下の手順を実行します。
rvm wrapper ruby@management bootup god
このコマンドを実行すると、`~/.rvm/bin`に、またはRVMをシステム全体にインストールしている場合は`/usr/local/rvm/bin`に、`bootup_god`実行ファイルが生成されます。
したがって、initファイルを設定する際に、god
への直接パスを使用する代わりに、bootup_god
へのパスを使用します。例として、以下の行を`/etc/rc.local`に追加できます(ただし、オペレーティングシステムの`init.d`システムを使用することをお勧めします)。
/home/your-long/.rvm/bin/bootup_god -c /path/to/config.god --log /var/log/god.log --no-syslog --log-level warn
また、他のgemsetまたはruby(例:`thin`や`thor`)にあるgod
の設定で参照するgemについても、ラッパースクリプトを生成し(したがって、それらのパスを使用する)、
rvm wrapper ruby@gemset [scope] [binary-name]
ここで、`[scope]`は実行ファイルのプレフィックス(例:前のgod
)、`binary-name`はラッパーを生成するバイナリです。したがって、`$rvm_bin_path/[scope]_[binary-name]`、例:`~/.rvm/bin/myapp_thin`が作成されます。
簡略化のために、`current`を`ruby@gemset`として使用でき、現在使用中のrubyがラッパー生成に使用されます。例:
rvm wrapper current bootup god
最後に、god
の設定内のthin
へのすべての呼び出しまたはthin
へのパスを、ラッパーへのパスに置き換えます。