Мой python script (python 3.4.3) вызывает bash script через подпроцесс:
import subprocess as sp
res = sp.check_output("bashscript", shell=True)
bashscript содержит следующую строку:
ssh -MNf somehost
который открывает общее мастер-соединение с некоторым удаленным хостом, чтобы разрешить некоторые последующие операции.
При выполнении python script он запрашивает пароль для строки ssh, но затем блокируется после ввода пароля и никогда не возвращается. Когда я ctrl-C завершает script, я вижу, что соединение было правильно установлено (поэтому строка ssh была успешно выполнена).
У меня нет этой проблемы с блокировкой при использовании check_call вместо check_output, но check_call не извлекает stdout. Я хотел бы понять, что именно вызывает поведение блокировки для check_output, вероятно, связано с некоторой тонкостью с ssh -MNf.
