Предполагая, что вы работаете в python virtualenv
(как и должно быть), вы можете сделать:
pip install subprocess32
в активированном virtualen.
Вы также можете установить это как пакет:
apt-get install -y python-subprocess32
Но это не даст вам дополнительной функциональности в любой программе, запущенной в virtualenv, и поскольку вы не должны использовать pip
для установки на систему Python, вы ограничены (т.е. должны ограничиться) в вашей программе python модулями python, доступными через apt-get
.
С socat
:
mkfifo pipe &&
<pipe socat tcp-listen:"$portB",reuseaddr,fork,bind=localhost - |
socat - tcp:localhost:"$portC" >pipe
Или даже лучше (избегая fifo и дополнительного уровня межпроцессного взаимодействия):
socat "tcp:localhost:$portC" \
"exec:\"socat - tcp-listen:$portB,reuseaddr,fork,bind=localhost\",nofork"
Из-за nofork
, второй socat
будет работать со своими stdin и stdout, напрямую соединенными с сокетом на C.