Дочерние процессы Socat не завершаются после cisconnect клиентаLinux

Ответить Пред. темаСлед. тема
Anonymous
 Дочерние процессы Socat не завершаются после cisconnect клиента

Сообщение Anonymous »

Я использую socat для пересылки трафика с локального порта на удаленный сервер через SSL. Моя команда выглядит следующим образом:

Код: Выделить всё

socat -d -d TCP-LISTEN:1234,fork,reuseaddr OPENSSL:192.168.1.2:1234,verify=0
Однако у меня возникла проблема, из-за которой дочерние процессы, созданные socat, не завершаются даже после отключения клиента. Когда я закрываю клиентское соединение (используя nc localhost 1234 для установления соединения, а затем нажимая ctrl-C), я вижу следующее в журнале отладки socat:

Код: Выделить всё

2024/07/06 22:37:12 socat[146196] N listening on AF=10 [0000:0000:0000:0000:0000:0000:0000:0000]:1234
2024/07/06 22:37:14 socat[146196] N accepting connection from AF=10 [0000:0000:0000:0000:0000:ffff:7f00:0001]:41648 on AF=10 [0000:0000:0000:0000:0000:ffff:7f00:0001]:1234
2024/07/06 22:37:14 socat[146196] N forked off child process 146210
2024/07/06 22:37:14 socat[146196] N listening on AF=10 [0000:0000:0000:0000:0000:0000:0000:0000]:1234
Несмотря на это, дочерние процессы остаются активными. Вот вывод pgrep -a socat зависших процессов:

Код: Выделить всё

146196 socat -d -d TCP-LISTEN:1234,fork,reuseaddr OPENSSL:192.168.1.2:1234,verify=0
146210 socat -d -d TCP-LISTEN:1234,fork,reuseaddr OPENSSL:192.168.1.2:1234,verify=0
Что я пробовал:
  • Добавление поддержки активностии его настройки (на основе этого вопроса) ): Никаких улучшений.
  • Код: Выделить всё

    -tПараметры 
    и -T: без улучшений.
Наблюдения:
  • когда я позволяю клиенту правильно завершить сеанс, дочерний процесс на стороне socat завершает работу должным образом.
  • по умолчанию, через десять секунд после того, как клиент отправляет EOF, socat печатает это в журналы:

Код: Выделить всё

N inactivity timeout triggered
N exiting with status 0
но дочерний процесс все еще активен.
Я создаю много разветвленных соединений, и со временем сервер создает сотни зависающих процессов, которые выделяют сотни мегабайт памяти до тех пор, пока сервер не выйдет из строя.
Будем очень признательны за любую помощь или предложения!

Подробнее здесь: https://stackoverflow.com/questions/787 ... cisconnect
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Linux»