Всегда оставайся живым
У меня хорошо работает 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