2012-04-30 15 views
5

Ho usato le seguenti istruzioni per installare e configurare il server sottile come un servizio su Ubuntu 10.04.4 con Rails 3.2.3:Impossibile avviare il server sottile come servizio, RubyGems: Impossibile trovare sottile

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

server di Thin funziona bene in esecuzione dalla radice dell'applicazione, utilizzando 'inizio sottile'

Tuttavia, quando si tenta di eseguire il servizio utilizzando uno di questi comandi:

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

ottengo il seguente errore:

/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>' 

Questo non sembra essere un problema con PATH 'che sottile' restituisce correttamente:

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

ho anche verificato l'esistenza di **/bin/sottile ovunque sia riferimento

ho provato a reinstallare la gemma usando 'gemma disinstallare sottile', 'gem install sottile' senza successo

qualcuno ha experie l'hai già fatto prima? Ho trovato solo un altro esempio di questo problema: Cannot restart thin via remote machine

Tale questione sembra essere stata solo tramite ssh, mentre io non riesco nemmeno a ottenere il servizio sottile iniziato a livello locale

Grazie

+0

La guida si sta seguendo è per vecchia versione di Ubuntu, 10.04 ha ha cambiato il modo in cui funzionano script di init. Inoltre, perché vuoi correre usando '/ etc/init.d'? invece di sottile -d? – CuriousMind

+0

Cercando di farlo funzionare come servizio all'avvio, dovrei creare un file sh che esegua thin -d e lo metta da qualche parte per eseguire all'avvio? – samJL

risposta

2

Sembra che ogni processo di avvio viene caricato la propria shell. così, provare a caricare rvm prima di tentare di avviare sottile:

#! /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 

posto in questo /etc/init.d/thin_service & corsa

$ sudo update-rc.d thin_service defaults 

Infine, è possibile verificare da semplicemente digitando sudo start thin_service & sudo stop start_thin invece di riavvio. Se ancora non funziona, prova railsgems-bundler e rvm wrapper. Leggete anche-

5

Poiché dal vostro stacktrace si utilizza rvm e si utilizza thin installato come gemma, è necessario utilizzare i wrapper rvm affinché il servizio funzioni. Per prima cosa rimuovere il service end reinstallarlo rvmsudo thin install anziché sudo thin install. Si dovrebbe anche usare rvmsudo thin config durante la creazione del file di configurazione.

Per createa un involucro,

rvm wrapper <your_rvm_ruby_version>@<your_rvm_gemset_in_use> bootup thin 

si possono trovare i nomi utilizzando rvm list e rvm gemset lista, rispettivamente. Il wrapper avrà il nome bootup_thin che puoi confermare sta usando la destra rvm con la quale bootup_thin. Puoi dargli il nome che vuoi mentre lo crei.Allora avete bisogno di modificare lo script sottile da

sudo nano /etc/init.d/thin 

Cambiare il demone originale per

DAEMON=location_of_bootup_thin 

Quale dovrebbe essere il risultato di which bootup_thin. Quindi puoi avviare il servizio.

sudo service thin start 

Spero che questo aiuta

Problemi correlati