Назад | Перейти на главную страницу

Как открыть сокет домена UNIX напрямую через TCP

Я хотел бы иметь сокет домена UNIX, например, /var/program/program.cmd, доступный через TCP, скажем, через порт 12345. Я также хотел бы, чтобы он работал постоянно в фоновом режиме.

Как лучше всего это сделать? Если это необходимо, система работает под управлением Ubuntu 12.04.2.

Кроме того, с предлагаемым решением выживет ли он после удаления и воссоздания доменного сокета?

РЕДАКТИРОВАТЬ

Вот результат принятого ответа в виде сценария инициализации: https://github.com/Wirehive/haproxy-remote

Ты можешь использовать socat чтобы экспортировать сокет unix как сокет TCP. Вот как это сделать:

socat TCP-LISTEN:12345 UNIX-CONNECT:/var/program/program.cmd

Это создаст TCP-сокет, прослушивающий порт 12345, который будет подключаться к упомянутому unix-сокету вашей программы.

Что касается удаления, то сам не тестировал. Вы можете проверить это и рассказать нам об этом :)

Примечание: Вы можете не найти socat установленным, вам просто нужно ввести: apt-get install socat установить его.