2014-11-21 7 views
19

Io uso un server clode per testare il mio progetto django small, scrivo in manage.py runserver &, e poi esco dal mio server Cloude, posso visitare mysite normalmente ma quando ricarico il mio server Cloude, non so come fermare il server di sviluppo, ho dovuto uccidere il processo per fermarlo, è comunque necessario interrompere lo sviluppo?server di sviluppo django, come fermarlo quando viene eseguito in background

+1

Questa è una buona domanda. Sì, tutti noi sappiamo come uccidere un processo, ma quando un servizio fornisce un'opzione di avvio, si presume che non si sappia qualcosa ... e cercare una fermata. È piuttosto una svista che il django rompe questo paradigma. – KateYoak

risposta

38

La risposta è reperibile tramite Google e ha risposto in altri forum. La soluzione di esempio è available on the Unix & Linux StackExchange site.

Per essere espliciti, si potrebbe fare:

ps auxw | grep runserver 

Ciò restituirà il processo e la sua rispettiva PID, come ad esempio:

de  7956 1.8 0.6 540204 55212 ?  Sl 13:27 0:09 /home/de/Development/sampleproject/bin/python ./manage.py runserver 

In questo caso particolare, il PID è 7956. Ora basta eseguire questo per fermarlo:

kill 7956 

E per essere chiari/affrontare alcuni dei commenti, lei deve farlo in questo modo perché è in esecuzione il server di sviluppo in background (il & nel comando). Ecco perché non esiste un'opzione di stop "Django" integrata ...

+1

Puoi portare il lavoro in primo piano usando 'fg' sulla riga di comando? Ho inserito il mio in bg e poi di nuovo in fg. Quindi CONTROL-C arresta del tutto il lavoro. Quando avvio il mio server, stampa alcune righe di testo, l'ultima è "Esci dal server con CONTROL-C". 01/01/2015 - 20:31:32 Django versione 2.0.1, utilizzando le impostazioni 'mysite.settings' Avvio del server di sviluppo all'indirizzo http://127.0.0.1:8000/ Chiudere il server con CONTROL-C. –

+0

@the_cat_lady è un buon suggerimento! Direi che garantisce la sua risposta, dal momento che è un altro modo per farlo ... – user

1

Per quanto ne so, ctrl + c o kill process è solo un modo per farlo sul computer remoto. Se si utilizzerà il server Gunicorn o qualcosa di simile, sarà possibile farlo utilizzando Supervisor.

+0

grazie, stavo preparando il mio esame finale. Era tardi per me per dire grazie – bricks

+0

@bricks U sono i benvenuti. – wolendranh

+0

il modo in cui la risposta sembra un cinese ~ ho ragione – bricks

5

beh sembra che sia un bug che django non ha fornito un comando per fermare il server di sviluppo. Ho pensato di averne uno prima ~~~~~

+0

Il mio ISP fornisce una shell molto limitata che mi dà dei calci su alcuni comandi, come 'kill' e anche' ps' :) Anche se posso esegui facilmente python manage.py ... È un peccato archiviare un ticket di supporto ogni volta che ho bisogno di eseguire un singolo comando. Quindi sono d'accordo: è necessario essere in grado di fermare il server –