Чи є спосіб зробити так, що коли програми намагаються виконувати seek()
операції над названою трубкою, він повернеться успішним (але діятиме так, ніби труба була порожнім файлом), а не "Незаконний пошук"?
У мене кожен останній невеликий вміст входу в мою систему зберігається в базі даних SQLite, я ніде не маю файлів. Однак є кілька програм, які мають проблеми з цим. Є 2 конкретні випадки;
- Програма хоче записати у файл журналу, який syslog-ng створив як іменовану трубу і з якої читається. Програма
seek()
чомусь хоче виконати, а потім не вдається. - Програма (наприклад, denyhosts або fail2ban) хоче зчитувати з файлу журналу, який syslog-ng створив як іменовану трубу і в яку записується. Програма хоче виконати
seek()
на ній і не вдається.
В ідеалі я просто хотів би, щоб ці прагнули вести себе так, ніби названа труба - це лише порожній файл. Я не бачу жодної причини, чому програмі, що записує журнал, все одно потрібно здійснити пошук, слід просто відкрити файл для додавання та почати писати. Я можу зрозуміти, чому читати програму хотіли б шукати, щоб вона могла відновитись з останньої позиції, і тому я хотів би, щоб він поводився так, ніби файл порожній (як би він був усічений).
То чи є якийсь варіант, який можна встановити на названі труби, щоб змусити їх вести себе таким чином? Якщо ні, чи існує режим, який можна встановити, коли syslog-ng відкриває трубу, щоб вона вела себе таким чином (я відкрита для внесення змін до коду)? Або я під витоком?