Я использую 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 )