Запретить тайм-ауты TCP-подключений при перезапуске службы
В Ubuntu 14.04 приложение связывается с клиентами с интервалами от 1 до 1 в минуту. Однако служба должна регулярно перезагружаться, и это приводит к обрыву / истечению времени всех соединений. Для перезапуска службы требуется всего около 10-15 секунд.
Можно ли настроить систему таким образом, чтобы при перезапуске службы эти соединения не блокировались / прерывались?
$ ulimit -n
1048576
$ cat /proc/sys/net/ipv4/tcp_fin_timeout
60
$ cat /proc/sys/net/ipv4/tcp_tw_recycle
0
$ cat /proc/sys/net/ipv4/tcp_tw_reuse
0
1 ответ
Одним словом, нет.
Когда вы перезапускаете сервис, вы должны убить процесс, который держит дескрипторы файлов сокетов открытыми. Предполагая, что это сеансы TCP, это означает, что сеанс TCP должен завершиться (FIN), а новый сеанс должен быть установлен (SYN) после перезапуска службы и нового процесса, который снова прослушивает сокет.
Зачем вам нужно перезапустить сервис? Ты не должен. Решите это, и ваша проблема исчезнет.