Django и подпроцесс: сервер разработки завершается по сигналу. SIGTERM - PullRequest
0 голосов
/ 29 сентября 2019

Я использую subprocess.Popen в приложении Django.Затем я сохраняю pid в базе данных.Затем пользователь может отправить запрос на отдых на /api/task/task.id/stop/, чтобы убить задачу.

Все это работает нормально, за исключением того, что когда я убиваю подпроцесс, сервер разработки Django также останавливается.Как мне убить подпроцесс, не убивая сервер dev?

Я запускаю свой процесс так:

process = subprocess.Popen(["nohup {} {} {}".format(settings.PYTHON, "task.py", task.id) ], shell=True )

task.pid = process.pid

task.save()

И я прекращаю его так:

os.killpg( os.getpgid(task.pid), signal.SIGTERM )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...