Таким образом, я пытаюсь стать худым для выполнения как услуга с RVM. После a thin install
Я вручную обновил /etc/init.d/thin
использовать su - user
когда выполнение конфигурации управляет так, чтобы тонкий работал как локальный пользователь, вместо того, чтобы базироваться.Пока все хорошо.
Теперь, когда я пытаюсь sudo service thin start
похоже, что это пытается использовать non-RVM версию Ruby (1.8.7, который был установлен на поле для запуска с) на самом деле выполнить команду. Я сделал a gem install thin
на non-RVM версии, которая затем получает меня a uninitialized constant Bundler
сообщение — Bundler только установлен в драгоценных камнях RVM, не системных драгоценных камнях. Похоже, что я не могу разбудить набор среды RVM (даже при том, что мой сценарий запуска RVM находится в ~/.bashrc, который затем включен в ~/.bash_profile).
Все, что я хочу сделать, выполняется тонкое как услуга использование среды RVM, не системной среды. Это даже возможно? Я должен просто сдаться и фиксировать окончательный грех выполнения всего как корень? Это очень заманчиво в этой точке.
Спасибо за любую справку!
RVM поставляется с удобным генератором оболочки, который создает промежуточный загрузчик для сценария init.d. Это позволяет загружать сервис, используя определенную версию Ruby и гемсет. Я использую его так (после установки тонкого драгоценного камня):
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 - отредактировать тонкий init
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
Если вы запускаете несколько приложений, просто сгенерируйте yml-файл конфигурации загрузки для каждого из них; при загрузке thin все yml файлы в / etc / thin / анализируются. Дополнительная информация здесь:
http://wiki.rubyonrails.org/deployment/nginx-thin?rev=1233246014 Примечание: это ссылка на ревизию, самая последняя версия была отредактирована, чтобы быть пустой. Рассмотрите возможность просмотра ссылки без ? Rev = ...
в URL-адресе, текущая версия может быть верной и потенциально более актуальной.
HTH
Хотя я больше не использую RVM в производственной среде, я по-прежнему предпочитаю тонкий рабочий сервер, и я все еще использую шаги 1–3, описанные выше, чтобы начать работу.Но в генерируемую им конфигурацию по умолчанию можно внести несколько изменений, вот некоторые из моих:
Установите пользователя и группу, которые должны работать в тонком режиме, как:
user: www-data
group: www-data
Удалите конфигурацию порта и вместо этого переключитесь на использование сокетов (немного быстрее) :
# port: 3000
socket: tmp/sockets/<appname>.sock
Укажите тонкому перезапуску экземпляров один за другим, вместо того, чтобы выключать их все перед повторным запуском (скользящий перезапуск):
onebyone: true
Дайте серверным процессам «тег», чтобы помочь их идентифицировать (в ps aux и т. Д.):
tag: <appname>