我的python脚本(python 3.4.3)通过子进程调用bash脚本:
import subprocess as sp
res = sp.check_output("bashscript", shell=True)
bashscript包含以下行:
ssh -MNf somehost
这将打开与某个远程主机的共享主连接,以允许一些后续操作.
执行python脚本时,它会提示输入ssh行的密码,但是在输入密码后它会阻塞,并且永远不会返回.当我按ctrl-C终止脚本时,我看到连接已正确建立(因此ssh行已成功执行).
使用check_call而不是check_output时,我没有此阻塞问题,但check_call不检索stdout.我想了解究竟是什么导致了check_output的阻塞行为,可能与ssh -MNf的一些微妙之处有关.