Я написал сценарий bash для запуска тонкого сервера для двух проектов.
#! /bin/sh
cd /path/to/my/project_1
thin -e production -p 3000 --daemonize -s 10 start
Затем поместил его в /etc/init.d/start_thin. Дал 755 разрешений. Ран:
sudo update-rc.d start_thin defaults.
тогда
sudo reboot
Тонкий не запускается. Спасибо.
ОБНОВИТЬ:
После долгой борьбы я обнаружил эту ошибку, которая возникает только при запуске thin с /etc/init.d/thin:
Запись PID в tmp / pids / thin.3000.pid Использование адаптера rails /path/.rvm/gems/ruby-1.9.2-p290/gems/mysql2-0.3.11/lib/mysql2/mysql2.so: [BUG] Ошибка сегментации ruby 1.8.7 (уровень исправлений 302 от 16 августа 2010 г.) [i686-linux]
Думаю, сейчас единственное логичное - перейти на "нормальный" sql gem.
ОБНОВЛЕНИЕ 2:
Я нашел этот ресурс, который помог мне раньше, но не может помочь сейчас.
ОБНОВЛЕНИЕ 3:
Я переустановил RVM с помощью быстрой установки. Теперь, когда запускается скрипт при загрузке, я вижу в журнале, что отсутствует гем: multi_json-1.1.0. Я установил его и вставил в Gemfile. Не помогло. Тем не менее, когда я выполняю сценарий bash вручную - проблем нет. Только при загрузке жалуется на multi_json-1.1.0.
ОБНОВЛЕНИЕ 4:
Только при запуске файл журнала thin содержит:
Я не понимаю, почему он использует 1.8 драгоценных камней, когда у меня установлен Ruby 1.9.2: -?
>> Writing PID to tmp/pids/thin.3000.pid
>> Using rails adapter
>> Exiting!
/usr/lib/ruby/gems/1.8/gems/bundler-1.0.15/lib/bundler/spec_set.rb:87:in `materialize': Could not find multi_json-1.1.0 in any of the sources (Bundler::GemNotFound)
from /usr/lib/ruby/gems/1.8/gems/bundler-1.0.15/lib/bundler/spec_set.rb:81:in `map!'
from /usr/lib/ruby/gems/1.8/gems/bundler-1.0.15/lib/bundler/spec_set.rb:81:in `materialize'
from /usr/lib/ruby/gems/1.8/gems/bundler-1.0.15/lib/bundler/definition.rb:90:in `specs'
from /usr/lib/ruby/gems/1.8/gems/bundler-1.0.15/lib/bundler/definition.rb:135:in `specs_for'
from /usr/lib/ruby/gems/1.8/gems/bundler-1.0.15/lib/bundler/definition.rb:124:in `requested_specs'
from /usr/lib/ruby/gems/1.8/gems/bundler-1.0.15/lib/bundler/environment.rb:23:in `requested_specs'
from /usr/lib/ruby/gems/1.8/gems/bundler-1.0.15/lib/bundler/runtime.rb:11:in `setup'
from /usr/lib/ruby/gems/1.8/gems/bundler-1.0.15/lib/bundler.rb:107:in `setup'
from /usr/lib/ruby/gems/1.8/gems/bundler-1.0.15/lib/bundler/setup.rb:17
from /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:36:in `gem_original_require'
from /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:36:in `require'
from /home/user1/myproj1/config/boot.rb:6
from /home/user1/myproj1/config/application.rb:1:in `require'
from /home/user1/myproj1/config/application.rb:1
from /home/user1/myproj1/config/environment.rb:2:in `require'
from /home/user1/myproj1/config/environment.rb:2
from /usr/lib/ruby/1.8/rack/adapter/rails.rb:42:in `require'
from /usr/lib/ruby/1.8/rack/adapter/rails.rb:42:in `load_application'
from /usr/lib/ruby/1.8/rack/adapter/rails.rb:23:in `initialize'
from /usr/lib/ruby/1.8/rack/adapter/loader.rb:36:in `new'
from /usr/lib/ruby/1.8/rack/adapter/loader.rb:36:in `for'
from /usr/lib/ruby/1.8/thin/controllers/controller.rb:163:in `load_adapter'
from /usr/lib/ruby/1.8/thin/controllers/controller.rb:67:in `start'
from /usr/lib/ruby/1.8/thin/runner.rb:174:in `send'
from /usr/lib/ruby/1.8/thin/runner.rb:174:in `run_command'
from /usr/lib/ruby/1.8/thin/runner.rb:140:in `run!'
from /usr/bin/thin:6
Итак, естественно, я установил гем multi_json, затем установил пакет и, что вы думаете? Та же старая проблема :).
./thin
, если он находится в этом каталоге. Скорее всего, дело не в ПУТИ. - person glenn jackman   schedule 21.03.2012sudo start start_thin
илиsudo restart start_thin
. Вам не нужно перезагружаться, чтобы протестировать ваш скрипт (это не Windows). - person user unknown   schedule 22.03.2012cd
выполняется в текущей оболочке, а не в подоболочке. - person glenn jackman   schedule 22.03.2012cd
, а затем командуthin
. Другой вопрос не имеет отношения к делу. - person glenn jackman   schedule 22.03.2012thin
- что это? Бинарный или другой скрипт? Если он работает в текущей оболочке, но не в подоболочке, зависит ли это от установленных переменных? От какой оболочки вы работаете - bash? Большинство людей используют bash, zsh или что-то более удобное, чем sh, так что это может иметь значение. В большинстве случаев делать программу зависимой от каталога, откуда она запускается, - плохая идея, поэтомуcd
в начале выглядит уже подозрительно. Но в целом я озадачен. - person user unknown   schedule 23.03.2012