Невозможно выполнить команду в фоновом режиме, используя подпроцесс - PullRequest
0 голосов
/ 07 февраля 2019

У меня есть конвейерная команда, которую я запускаю, используя функцию 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)

, но это демонстрирует похожее поведение.Может ли кто-нибудь помочь?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...