Всегда оставайся живым

У меня хорошо работает socat, выполняющий мою команду при подключении с предоставленными аргументами. Однако проблема, с которой я сталкиваюсь, заключается в том, что сокет находится в EOF, и в следующий раз, когда будет установлено соединение, процессу потребуется 3 секунды, чтобы вернуться обратно. Процесс будет продолжаться вечно, так что он думает, что есть EOF, по крайней мере, это мое понимание.

Моя команда: socat -v -s -d -d tcp-listen:2600,reuseaddr,fork exec:"/usr/bin/cec-client $CEC_CLIENT_ARGS"

Соответствующие строки журнала:

2014/12/31 22:41:04 socat[4746] N socket 1 (fd 4) is at EOF
2014/12/31 22:41:05 socat[4746] N exiting with status 0

я пытался ignoreeof на обоих концах, без эффекта. Я также попытался установить тайм-ауты, оба -t а также -T

1 ответ

Если вы используете команду LISTEN, как OPENSSL-LISTEN, TCP-LISTENи т. д. fork Опция отключит соединения с дочерним процессом, так что socat может продолжать получать.

Пример:

socat - OPENSSL-LISTEN:443,method=TLS1.2,verify=0,cert=cert.pem,key=key.pem,fork

Спасибо: /questions/501264/kak-razobrat-uvedomleniya-ob-otkazah-po-elektronnoj-pochte/501269#501269

Другие вопросы по тегам