У меня есть конвейерная команда, которую я запускаю, используя функцию subprocess.call
.Это выглядит примерно так:
cmd = 'echo password | ./create_apps.sh 4 &'
Сценарий create_apps.sh
также запускает несколько приложений на python3 с командой '&', не считая некоторых других вещей.Что-то похожее на выполнение нескольких таких команд в цикле в bash-скрипте:
echo password | sudo python3 app.py &
У меня проблема в том, что команда subprocess
никогда не возвращается, то есть поток управления никогда не переключается обратно наОсновная программа.Может ли кто-нибудь помочь с этим?Мне просто нужно, чтобы эта команда работала в фоновом режиме, пока мой основной поток программы продолжается как обычно.Я попытался использовать Popen
, используя что-то вроде этого (как предложено в некоторых других ответах):
p1 = subprocess.Popen(['echo', 'password'], stdout=subprocess.PIPE, close_fds=True)
p2 = subprocess.Popen(['./create_apps.sh', '4'], stdin=p1.stdout, stdout=subprocess.PIPE, close_fds=True)
, но это демонстрирует похожее поведение.Может ли кто-нибудь помочь?