Я пытаюсь работать тонко как услугу на своем веб-сервере. После запуска «Суда тонкой установки», тонкий создал следующий файл в /etc/init.d/thinЗапуск приложений Rails с тонким сервисом
#!/bin/sh
DAEMON=/usr/local/lib/ruby/gems/1.9.1/bin/thin
SCRIPT_NAME=/etc/init.d/thin
CONFIG_PATH=/etc/thin
# Exit if the package is not installed
[ -x "$DAEMON" ] || exit 0
case "$1" in
start)
$DAEMON start --all $CONFIG_PATH
;;
stop)
$DAEMON stop --all $CONFIG_PATH
;;
restart)
$DAEMON restart --all $CONFIG_PATH
;;
*)
echo "Usage: $SCRIPT_NAME {start|stop|restart}" >&2
exit 3
;;
esac
Когда начинается тонкая служба, побежал
thin start --all /etc/thinследующее Это будет сканировать все файлы конфигурации YAML определения как работать тонким для каждого установленного приложения. Это не работает.
Я вижу в моих журналах:
/usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.0.0/lib/bundler/runtime.rb:27:in `block in setup': You have already activated eventmachine 0.12.6, but your Gemfile requires eventmachine 0.12.11. Consider using bundle exec. (Gem::LoadError)
from /usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.0.0/lib/bundler/spec_set.rb:12:in `block in each'
from /usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.0.0/lib/bundler/spec_set.rb:12:in `each'
from /usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.0.0/lib/bundler/spec_set.rb:12:in `each'
from /usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.0.0/lib/bundler/runtime.rb:17:in `setup'
from /usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.0.0/lib/bundler.rb:100:in `setup'
from /srv/app/current/config/boot.rb:8:in `<top (required)>'
from <internal:lib/rubygems/custom_require>:29:in `require'
from <internal:lib/rubygems/custom_require>:29:in `require'
from /srv/app/current/config/application.rb:1:in `<top (required)>'
from <internal:lib/rubygems/custom_require>:29:in `require'
from <internal:lib/rubygems/custom_require>:29:in `require'
from /srv/app/current/config/environment.rb:2:in `<top (required)>'
from <internal:lib/rubygems/custom_require>:29:in `require'
from <internal:lib/rubygems/custom_require>:29:in `require'
from /srv/app/current/config.ru:3:in `block in <main>'
from /usr/local/lib/ruby/gems/1.9.1/gems/rack-1.2.1/lib/rack/builder.rb:46:in `instance_eval'
from /usr/local/lib/ruby/gems/1.9.1/gems/rack-1.2.1/lib/rack/builder.rb:46:in `initialize'
from /srv/app/current/config.ru:1:in `new'
from /srv/app/current/config.ru:1:in `<main>'
from /usr/local/lib/ruby/gems/1.9.1/gems/thin-1.2.7/lib/rack/adapter/loader.rb:36:in `eval'
from /usr/local/lib/ruby/gems/1.9.1/gems/thin-1.2.7/lib/rack/adapter/loader.rb:36:in `load'
from /usr/local/lib/ruby/gems/1.9.1/gems/thin-1.2.7/lib/rack/adapter/loader.rb:45:in `for'
from /usr/local/lib/ruby/gems/1.9.1/gems/thin-1.2.7/lib/thin/controllers/controller.rb:163:in `load_adapter'
from /usr/local/lib/ruby/gems/1.9.1/gems/thin-1.2.7/lib/thin/controllers/controller.rb:67:in `start'
from /usr/local/lib/ruby/gems/1.9.1/gems/thin-1.2.7/lib/thin/runner.rb:177:in `run_command'
from /usr/local/lib/ruby/gems/1.9.1/gems/thin-1.2.7/lib/thin/runner.rb:143:in `run!'
from /usr/local/lib/ruby/gems/1.9.1/gems/thin-1.2.7/bin/thin:6:in `<top (required)>'
from /usr/local/lib/ruby/gems/1.9.1/bin/thin:19:in `load'
from /usr/local/lib/ruby/gems/1.9.1/bin/thin:19:in `<main>'
Когда Capistrano разворачивает, я кэшировать мой сверток в $ APP_PATH/Shared/комплект каталогов; так, это объясняет, почему тонкий жалуется на драгоценные камни не установлены, как тонкая служба не смотрит в $ APP_PATH/Shared/пачке
Это работа:
cd $APP_PATH/current; bundle exec thin start -d -C /etc/thin/app_x.yml
, но это не так, как тонкий файл службы в /etc/init.d/thin работает. Думаю, я мог бы написать свое. Я просто не хочу решать проблему, которая уже решена.
Обратите внимание, что ошибка не о драгоценном камне, который не установлен. Проблема в том, что activemachine активируется два раза для разных версий, и предлагаемое исправление заключается в том, чтобы запустить исполняемый файл пакета, как вы это делаете. – 2010-11-23 22:25:58