Сервер разработки django, как остановить его, когда он работает в фоновом режиме

Я использую сервер clode для тестирования моего небольшого проекта django, я набираю manage.py runserver &, а затем выхожу из моего сервера cloude, я могу посещать mysite в обычном режиме, но когда я перезагружаю свой сервер cloude, я не знаю, как остановить сервер разработки, мне пришлось убить процесс, чтобы остановить его, есть ли способ остановить разработку?


person bricks    schedule 21.11.2014    source источник
comment
Это хороший вопрос. Да, все мы знаем, как убить процесс, но когда служба предоставляет возможность запуска, вы предполагаете, что чего-то не знаете ... и ищете остановки. То, что django нарушает эту парадигму, - это скорее оплошность.   -  person KateYoak    schedule 05.10.2015
comment
@KateYoak Ну, я отправил его разработчикам Django.   -  person Brambor    schedule 07.09.2020


Ответы (9)


Ответ можно найти через Google - и ответы на других форумах. Пример решения доступен на сайте Unix и Linux StackExchange.

Чтобы быть точным, вы могли бы сделать:

ps auxw | grep runserver

Это вернет процесс и его соответствующий PID, например:

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

В данном конкретном случае PID равен 7956. Теперь просто запустите это, чтобы остановить это:

kill 7956

И чтобы прояснить / рассмотреть некоторые комментарии, вы должны сделать это таким образом, потому что вы запускаете сервер разработки в фоновом режиме (& в вашей команде). Вот почему нет "встроенной" опции остановки Django ...

person user    schedule 21.11.2014
comment
Можете ли вы вывести задание на передний план, используя "fg" в командной строке? Я переключил свой на bg, затем обратно на fg. Затем CONTROL-C полностью останавливает работу. Когда я запускаю свой сервер, он печатает несколько строк текста, последней из которых является Выйти с сервера, нажав CONTROL-C. 01 февраля 2018 г. - 20:31:32 Django версии 2.0.1, с использованием настроек mysite.settings. Запуск сервера разработки на 127.0.0.1:8000 Закройте сервер, нажав CONTROL-C. - person the_cat_lady; 01.02.2018
comment
@the_cat_lady, это тоже хорошее предложение! Я бы сказал, что это требует собственного ответа, поскольку это другой способ сделать это ... - person user; 02.02.2018
comment
К сожалению, Django запускает дочерний процесс, который состоит из двух процессов, что затрудняет удаление из сценария. Тем более, что убийство родителя не убивает ребенка. - person Torsten Bronger; 22.05.2019

Один лайнер..

pkill -f runserver
person archit gupta    schedule 26.07.2018
comment
классно. Коротко и мило. - person user1953366; 17.10.2019
comment
Будьте осторожны, если запущено несколько процессов "runserver" !!! Это убьет все запущенные процессы сервера запуска. - person amolbk; 30.01.2020

ну, похоже, что это ошибка, что django не предоставил команду для остановки сервера разработки. Я думал, что он был раньше ~~~~~

person bricks    schedule 22.11.2014
comment
Мой интернет-провайдер предоставляет очень ограниченную оболочку, которая выводит меня из строя по некоторым командам, таким как kill и даже ps :) Хотя я могу легко запустить python manage.py ... Жалко подавать заявку в службу поддержки каждый раз, когда мне нужно выполнить один команда. Итак, я согласен - это необходимо, чтобы иметь возможность останавливать сервер - person p.boiko; 31.10.2017

Насколько я знаю, ctrl + c или kill process - это только способы сделать это на удаленном компьютере. Если вы будете использовать сервер Gunicorn или что-то подобное, вы сможете сделать это с помощью Supervisor.

person wolendranh    schedule 21.11.2014
comment
ctrl + c не остановит полноценный бесконечный цикл. - person Marc; 07.05.2015

Ctrl + c должен работать. Если этого не произойдет, Ctrl + / принудительно завершит процесс.

person timotaoh    schedule 05.03.2021

Мы можем использовать следующую команду.

-> netstat -ntlp

тогда мы получим номер процесса, запущенного с PID, найдем PID нашего сервера python и процесс Kill.

-> kill -9 PID

Например:
 введите описание изображения здесь

person Willie Cheng    schedule 19.07.2019

Из диспетчера задач вы можете завершить запущенные задачи Python. Теперь запустите python manage.py runserver из каталога вашего проекта, и он будет работать.

person Ramandeep Singh    schedule 16.06.2018

Попробуй это

lsof -t -i tcp:8000 | xargs kill -9
person Peter Wauyo    schedule 25.09.2020

Вы можете выйти из сервера, нажав CTRL-BREAK.

person Mahesh    schedule 26.11.2018
comment
Нет, если это на заднем плане. - person Torsten Bronger; 22.05.2019