Я работаю над простым flask приложением, и у меня есть конечная точка, которая создает сеанс bash по запросу. Я хочу, чтобы процесс был сохранен, даже если я убил flask.
Процесс запущен с использованием subprocess.Popen()
, и я хочу, чтобы он продолжался даже после выполнения killall python
с терминала.
Я попытался установить аргумент preexec_fn=os.setsid
и preexec_fn=setpgrp
на Popen
, но запуск killall
все еще убивает оболочку bash, которую я создал в своем приложении Flask.
Соответствующий код:
def run_command(command):
Process.proc = subprocess.Popen(
command,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
universal_newlines=True,
preexec_fn=os.setsid,
)
run_command(['bash', '-c', 'for((i=0;i<1000;i++)); do echo $i; sleep 1; done; echo EOF'])
Буду признателен за любые указатели. Спасибо.