Сборщик журналов lab-shipper пересылает в центр журналы ста служб магазина из /var/log/shop. Коллеги видят журналы только части служб. Посмотри, что пишет сам сборщик, какой лимит открытых файлов у тебя и сколько файлов открыто у сборщика.
Посмотри на сборщик
Сборщик lab-shipper пересылает журналы из /var/log/shop. Посмотри последние строки его журнала, свой лимит открытых файлов и сколько файлов открыто у процесса shipper.
Сначала предположи
Сборщик не может открыть очередной журнал: Too many open files. Сколько файлов у процесса shipper уже открыто?
Теперь начни упражнение, выполни команду и сверь прогноз с выводом.
У процесса shipper открыто 64 файла, и следующий он открыть не может. У тебя ulimit -n — 1024. Что из этого следует?
-
Linux не запрещает открывать файл, открытый у другого процесса: журнал одновременно пишет служба и читает сборщик. Отказ в доступе выглядел бы как Permission denied.
-
Журналы уже лежат на диске, сборщик их только читает. Нехватку места показывает
df -h, а ошибка звучала бы No space left on device. -
Тогда файлы не открывались бы и у других программ, а ты открываешь их свободно. Сборщик упирается ровно в 64 — это его предел.
У процесса сборщика свой предел — 64 открытых файла, и он меньше твоего.