У меня есть сценарий
import os
os.system('python manage.py runserver')
Сценарий запускает сервер django (независимо от того, что он делает, это может быть любая команда, выполняемая до тех пор, пока не будет нажата ctrl+c
или другое сочетание клавиш).
Я хочу остановить сервер любым способом, но не убивая его с помощью pid.
Что я пробовал:
Я попытался использовать subprocess
lib, а это kill
команду, как описано здесь: Как завершить подпроцесс Python, запущенный с shell = True
Но это не помогает. Как я предполагаю, причина в том, что мы убиваем не процесс manage.py runserver
, а процесс, оценивающий python manage.py runserver
. Итак, после завершения процесса сервер все еще работает.
Также я пробовал использовать метод terminate
:
p = subprocess.Popen('python manage.py runserver', stdout=subprocess.PIPE, shell=True)
time.sleep(5)
p.terminate()
Как мне кажется, должно работать так: сервер запускается и через 5 секунд останавливается, но никогда не останавливается.
Есть ли способ убить процесс?
terminate
не работает, обновил мой вопрос, чтобы показать, что я делаю с завершением 21.10.2014