0

ssh spawn を使用してコマンドをリモート マシンに送信しようとしています。を使用してコマンドを送信していPopen()ますが、コマンドが完了したことを確認できますが、その後 (セッションを閉じてリターンコードを取得するために) を使用しようとするcommunicate()と、プログラムが動かなくなります。

cmd = """expect -c 'spawn ssh -o LogLevel=quiet """ \
      """-o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -o PreferredAuthentications=publickey """ \
      """-o ConnectTimeout=10 -2 -o CheckHostIP=no -i {0} {1}@{2} ;\
      """expect "#";send "mkdir test9\n" ;interact'""".format(self.sshKey, SSHUser, self.hostname) 
process = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
p_stdoutdata, p_stderrdata = process.communicate()

通信に到達すると、プログラムが動かなくなります。

4

1 に答える 1