我在我的 python 脚本中生成一个 ssh
进程,如下所示:
env = {'SSH_ASKPASS':'/home/max/repo/vssh/vssh/vssh.py', 'DISPLAY':':123'}
for x in sessions:
current_session = Popen(["ssh", x.address],
stdin=PIPE,
stdout=PIPE,
stderr=None,
shell=False,
env=env,
preexec_fn=os.setsid)
问题是我的脚本启动了子进程,然后继续运行。 ssh
需要为其提供密码,这是我试图重定向到脚本的 STDOUT/STDIN 的内容。除了在它询问我的密码时,我的脚本已经完成。
在我输入密码并通过 ssh
成功建立连接之前,如何让我的脚本停止?
最佳答案
如果它真的从标准输入读取,那么您可以使用 communicate method .但是密码提示通常绕过标准输入并与控制终端通信,在这种情况下你需要像 pexpect 这样的东西。 .
您可能想查看 Python 的 SSH 模块,这应该比管理子进程更简单、更可靠。
关于python - 如何让我的 python 应用程序在继续之前等待某个子进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9351417/