Связаться многократно с процессом, не повреждая канал?

Потратив несколько дней на эту проблему, я смог найти решение - нам нужен stunnel или любой другой эквивалент, создающий туннель SSL, redis-cli не поддерживает ssl или tls.

Чтобы получить доступ к данным из ElastiCache для узлов Redis, включенных с транзитным шифрованием, вы используете клиенты, которые работают с Secure Socket Layer (SSL). Однако Redis-Cli не поддерживает SSL или безопасность транспортного уровня (TLS). Чтобы обойти это, вы можете использовать команду stunnel для создания туннеля SSL для узлов redis. Затем вы используете redis-cli для подключения к туннелю для доступа к данным с зашифрованных узлов Redis.

blockquote>

https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/in-transit-encryption.html

26
задан Manux 7 March 2016 в 20:22
поделиться

2 ответа

Я думаю, вы не понимаете, как общаться ...

http://docs.python.org/library/subprocess.html#subprocess.Popen.communicate

общаться отправляет строку другому процессу и затем ожидает ее закончить ... (Как вы сказали, ожидает EOF прослушивания stdout & amp; stderror)

Вместо этого вам следует сделать следующее:

proc.stdin.write('message')

# ...figure out how long or why you need to wait...

proc.stdin.write('message2')

(и если вам нужно получить stdout или stderr, вы бы использовали proc.stdout или proc.stderr)

22
ответ дан Terence Honles 28 November 2019 в 07:52
поделиться

У меня уже была такая проблема, и насколько я мог понять, вы не могли сделать это с помощью subprocess (что, я согласен, очень контринтуитивно, если это правда). В итоге я использовал pexpect (можно получить из PyPI).

4
ответ дан 28 November 2019 в 07:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: