У меня есть следующий код питона, который висит:питон подпроцесс общаться замерзает
cmd = ["ssh", "-tt", "-vvv"] + self.common_args
cmd += [self.host]
cmd += ["cat > %s" % (out_path)]
p = subprocess.Popen(cmd, stdin=subprocess.PIPE,
stdout=subprocess.PIPE, stderr=subprocess.PIPE)
stdout, stderr = p.communicate(in_string)
Предполагается сохранить строку (in_string) в удаленный файл через SSH.
Файл сохранен правильно, но затем процесс зависает. Если я использую
cmd += ["echo"] instead of
cmd += ["cat > %s" % (out_path)]
процесс не висит, так что я уверен, что я неправильно что-то о том, как общаться считает, что процесс завершился.
Знаете ли вы, как я должен написать команду, чтобы файл «cat» не делал связь зависающей?
Я думаю, что это [сообщение] (http://stackoverflow.com/a/19202567/1982962) может помочь, это пример того, как писать в удаленный файл с помощью SSH –
Плавный касательный , но вместо того, чтобы использовать SSH-процесс для этого, рассмотрели ли вы что-то вроде [SSHFS] (http://fuse.sourceforge.net/sshfs.html)? Это означало бы, что вам нужно будет только беспокоиться о записи в файл, вместо того, чтобы поддерживать все это –