2011-10-17 14 views
6

Sto usando thin come il server per la mia app Sinatra. E 'iniziato così:Sottile e sinatra: come fermarsi/ricominciare? No thin.pid

thin -C config/environment.yml -R config/config.ru start 

Dove environment.yml ha roba sottile e config.ru è roba generale che si può trovare in un file rackup.

Mi piacerebbe essere in grado di eseguire il daemonize (abbastanza facile con il file di configurazione di thin) e fermarsi e riavviarlo come fa con apache/tomcat/etc.

Quando provo thin stop o riavviare o varie altre cose, ottengo:

Can't stop process, no PID found in tmp/pids/thin.pid

In effetti, non c'è tale file. Ho provato a specificare un file PID e l'ubicazione (ad esempio, /tmp/thin.pid, per semplificare) nella configurazione sottile yml in vari luoghi diversi. Tutto ciò è modificare la posizione della directory nel messaggio "no PID found in", tuttavia non viene creato alcun file PID.

Qualche idea?

+0

È il vostro app davvero in esecuzione? Ti dimagrisci con 'ps ax | grep thin'? – Slartibartfast

+0

Sì, l'app è in esecuzione, l'ho ricevuta con ps e posso collegarmi tramite il browser/arricciatura/cosa hai. Lo eseguo attualmente in una 'schermata' e, quando voglio riavviare, semplicemente' screen -r', 'ctrl + c', e riavvia manualmente. Mi piacerebbe fare di meglio. –

+0

Hai provato 'thin -C config/environment.yml stop'? – Slartibartfast

risposta

9

Il pid verrà creato quando viene eseguito il daemon di thin, quindi ricontrolla l'opzione daemonize: true. Considerando che è yaml, lo spazio bianco può far sbagliare le cose. In alternativa, specificare lo switch --daemonize.

Se la posizione del file pid è non predefinito, si dovrebbe anche specificare file di configurazione al momento del rilascio di arresto:

thin -C config/environment.yml stop 
+0

Sono abbastanza sicuro che questo dovrebbe essere 'daemonize: true' nel file di configurazione (cioè no" d ") –

+0

@Jonathan Cairns grazie, risolto. – Slartibartfast

Problemi correlati