Subprocesso Python .check_call vs .check_output
Meu script python (python 3.4.3) chama um script bash via subprocesso:
import subprocess as sp
res = sp.check_output("bashscript", shell=True)
obashscript contém a seguinte linha:
ssh -MNf somehost
que abre uma conexão mestre compartilhada com algum host remoto para permitir algumas operações subseqüentes.
Ao executar o script python, ele solicitará a senha para ossh
linha, mas depois bloqueia depois que a senha é inserida e nunca retorna. Ao pressionar Ctrl-C para finalizar o script, vejo que a conexão foi estabelecida corretamente (portantossh
linha foi executada com sucesso).
Não tenho esse problema de bloqueio ao usarcheck_call
ao invés decheck_output
, mascheck_call
não recupera stdout. Eu gostaria de entender o que exatamente está causando o comportamento de bloqueio paracheck_output
, provavelmente relacionado a alguma sutileza comssh -MNf
.