Не зупиняйте socat від завершення, коли закриється інший кінець


12

Я хотів би перенаправити введення та вихід додатків до unix-сокета та підключитися до цього сокета з іншого сеансу. Що я зараз роблю, це наступне:

На стороні "сервера":

socat EXEC:"command" UNIX-LISTEN:/tmp/comm

І на стороні "клієнта":

socat UNIX-CONNECT:/tmp/comm -

Це працює досить добре, але як тільки клієнт socatприпиняє роботу, сервер також припиняється. Але я хотів би, щоб він продовжував працювати і знову підключався пізніше ... Як це зробити?

Відповіді:


12

Ви повинні використовувати forkпараметр, який обробляє з'єднання в дочірньому процесі, зробити так, щоб батьківський процес намагався обробляти більше з'єднань.

У першому терміналі:

$ socat - UNIX-LISTEN:/tmp/comm,fork

У другому терміналі:

$ socat UNIX-CONNECT:/tmp/comm -

Натисніть Ctrl+ Cу другому терміналі, перейдіть на перший термінал і побачите, що ваш сервер все ще працює.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.