2012-04-30 25 views
5

que utilizan las siguientes instrucciones para instalar y configurar el servidor delgado como un servicio en Ubuntu 10.04.4 con rieles 3.2.3:No se puede iniciar el servidor delgado como de servicios, RubyGems: No se pudo encontrar delgada

http://articles.slicehost.com/2008/5/6/ubuntu-hardy-thin-web-server-for-ruby

servidor Thin funciona bien ejecutarlo desde la raíz de la aplicación, el uso de 'inicio delgada'

Sin embargo, cuando trato de ejecutar el servicio utilizando cualquiera de estos comandos:

service thin start 
sudo service thin start 
/etc/init.d/thin start 
sudo /etc/init.d/thin start 

me sale el siguiente error:

/home/myuser/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/site_ruby/1.9.1/rubygems/dependency.rb:247:in `to_specs': Could not find thin (>= 0) amongst [bigdecimal-1.1.0, io-console-0.3, json-1.5.4, minitest-2.5.1, rake-0.9.2.2, rdoc-3.9.4] (Gem::LoadError) 
    from /home/myuser/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/site_ruby/1.9.1/rubygems/dependency.rb:256:in `to_spec' 
    from /home/myuser/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/site_ruby/1.9.1/rubygems.rb:1210:in `gem' 
    from /home/myuser/.rvm/gems/ruby-1.9.3-p125/bin/thin:18:in `<main>' 

Esto no parece ser un problema con la trayectoria, 'el cual delgada' devuelve correctamente:

home/myuser/.rvm/gems/ruby-1.9.3-p125/bin/thin 

También han comprobado la existencia de **/bin/delgada donde quiera que se hace referencia

he intentado reinstalar la gema usando 'joya desinstalar delgada', 'joya instalar delgada' sin éxito

ha experie cualquiera Nced esto antes? Sólo he encontrado otra instancia de este problema: Cannot restart thin via remote machine

Esta cuestión parece haber sido sólo a través de ssh, mientras que ni siquiera puedo obtener el servicio delgada empecé localmente

Gracias

+0

La guía está siguiendo es para la versión antigua de Ubuntu, 10.04 ha ha cambiado la forma en que funcionan los scripts de inicio. Además, ¿Por qué quieres correr delgado usando '/ etc/init.d'? en lugar de thin -d? – CuriousMind

+0

Intentando que se ejecute como un servicio al inicio, ¿debo crear un archivo sh que funcione como thin -d y colocarlo en algún lugar para ejecutarlo al inicio? – samJL

Respuesta

2

Parece que cada trabajo de inicio está cargado en su propio shell. así, intente cargar rvm antes de intentar iniciar delgada:

#! /bin/sh 
# Load RVM into a shell session *as a function* 
if [[ -s "$HOME/.rvm/scripts/rvm" ]] ; then 

    # First try to load from a user install 
    source "$HOME/.rvm/scripts/rvm" 

elif [[ -s "/usr/local/rvm/scripts/rvm" ]] ; then 

    # Then try to load from a root install 
    source "/usr/local/rvm/scripts/rvm" 

else 

    printf "ERROR: An RVM installation was not found.\n" 

fi 

rvm use 1.9.3 
cd /path/to/your/application/code 
bundle exec thin -d 

lugar en esta carrera /etc/init.d/thin_service &

$ sudo update-rc.d thin_service defaults 

Por último, se puede probar por simplemente escribiendo sudo start thin_service & sudo stop start_thin en lugar de reiniciar. Si esto todavía no funciona, prueba railsgems-bundler y rvm wrapper. Además, lea rvm's Deployment Best Practices

5

Dado que parece que de su stacktrace está utilizando rvm, y está utilizando Thin instalado como una gema, debe usar envoltorios de rvm para que el servicio funcione. Primero elimine el extremo de servicio y vuelva a instalarlo rvmsudo thin install en lugar de sudo thin install. También debe usar rvmsudo thin config mientras crea el archivo de configuración también.

createa una envoltura,

rvm wrapper <your_rvm_ruby_version>@<your_rvm_gemset_in_use> bootup thin 

se pueden encontrar los nombres mediante el uso de rvm list y rvm gemset lista respectivamente. El contenedor tendrá el nombre bootup_thin el cual puede confirmar que está utilizando el rvm correcto por el cual bootup_thin. Puedes darle el nombre que quieras al crearlo.Luego hay que editar la escritura fina por

sudo nano /etc/init.d/thin 

Cambiar el DAEMON original al

DAEMON=location_of_bootup_thin 

que debe ser el resultado de which bootup_thin. Entonces puedes comenzar el servicio.

sudo service thin start 

espero que esto ayude a

Cuestiones relacionadas