RVMには、init.dスクリプトの中間ローダーを作成する便利なラッパージェネレーターが付属しています。これにより、特定のRubyバージョンとgemsetを使用してサービスをロードできます。私はそれを次のように使用します(薄い宝石をインストールした後):
1-シンのinit.dエントリを作成します
sudo thin install
2-いくつかのデフォルトを設定します
sudo /usr/sbin/update-rc.d -f thin defaults
3-Railsアプリのブート構成を生成します
sudo thin config -C /etc/thin/<appname>.yml -c /var/rails/<appdir> --servers 4 -e production
4-rvmラッパースクリプトを生成します
rvm wrapper <rubyversion>@<gemset> bootup thin
5-グローバルジェムセットを使用している場合は、
rvm wrapper ruby-1.9.2-p125 bootup thin
6-thininitを編集します
sudo nano /etc/init.d/thin
7-元のローダーを変更します
DAEMON=/usr/local/rvm/gems/ruby-<rubyversion>-<rubyrevision>@<gemset>/bin/thin
8-代わりにrvmラッパーを指す
DAEMON=/usr/local/bin/bootup_thin
9-起動します
sudo service thin start
複数のアプリを実行している場合は、アプリごとにbootconfigymlファイルを生成するだけです。シンを起動すると、/ etc /thin/内のすべてのymlファイルが解析されます。詳細はこちら:
http://wiki.rubyonrails.org/deployment/nginx-thin?rev=1233246014 nb:これはリビジョンにリンクしています。最新バージョンは、空になるように編集されています。URLにが含まれていないリンクを確認することを検討してください?rev=...
。現在のバージョンが戻っており、最新の状態になっている可能性があります。
HTH
2013ボーナス編集
私は本番環境でRVMを使用しなくなりましたが、thinは引き続き本番サーバーとして選択されており、上記の手順1〜3を使用して開始します。しかし、それが生成するデフォルトの構成は、いくつかの調整で行うことができます。ここに私のいくつかがあります:
シンが実行するユーザーとグループを次のように設定します。
user: www-data
group: www-data
ポート構成を削除し、代わりにソケットを使用するように切り替えます(少し速く):
# port: 3000
socket: tmp/sockets/<appname>.sock
シンに、インスタンスを1つずつ再起動するように指示します。再起動する前にすべてをシャットダウンするのではなく、次のようにします(ローリングリスタート)。
onebyone: true
サーバープロセスに「タグ」を付けて、それらを識別するのに役立てます(ps auxなど)。
tag: <appname>