Форум русскоязычного сообщества Ubuntu


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: закрытие сокета или обнуление системного счетчика файлых дескрипторов  (Прочитано 681 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн 6epreu

  • Автор темы
  • Новичок
  • *
  • Сообщений: 33
    • Просмотр профиля
Всем добрый день.
Писал FTP сервер. Народ в отедел уже юзает его как с месяц и все бы вроде норм, но сегодня обнаружлся косяк.

При записи более 1000 файлов за раз сервак повис.
Я вычислил, что зависание сервера происходит на этапе ожидания клиентского подключения функцией accept() и что возвращается ошибка
EMFILE 24 /* Too many open files */

Заметил, что последнее соединение было с номером файлового дескриптора сокета больше 1000, следовательно процессу позволено открыть не более 1000 файловых дескрипторов.

Сразу скажу, что полсе выполнения какой либо операции через открытый сокет, я его закрываю через close() и никакой ошибки не возвращается.

Внимание вопрос. Как можно обнулить счетчик файловых дескрипторов процессу или какая есть функция для закрытия сокета, которая бы ДЕЙСТВИТЕЛЬНО освобождала файловый дескриптор???

 

Страница сгенерирована за 0.017 секунд. Запросов: 21.