Apakah ada cara untuk membuatnya sehingga ketika program mencoba untuk melakukan seek()
operasi pada pipa bernama itu akan kembali berhasil (tetapi bertindak seolah-olah pipa itu adalah file kosong) alih-alih 'Pencarian ilegal'?
Saya memiliki setiap log terakhir pada sistem saya yang tersimpan dalam database SQLite, saya tidak punya file di mana pun. Namun ada beberapa program yang mengalami masalah dengan ini. Ada 2 kasus khusus;
- Suatu program ingin menulis ke file log yang syslog-ng telah buat sebagai pipa bernama dan sedang dibaca. Program ingin melakukan
seek()
karena suatu alasan dan kemudian gagal. - Suatu program (seperti denyhosts atau fail2ban) ingin membaca dari file log yang syslog-ng telah buat sebagai pipa bernama dan sedang menulis. Program ingin melakukan
seek()
itu dan gagal.
Idealnya saya hanya ingin ini berperilaku seolah-olah pipa bernama hanyalah file kosong. Saya tidak dapat melihat alasan mengapa suatu program menulis log perlu melakukan pencarian, itu hanya harus membuka file untuk ditambahkan dan mulai menulis. Saya dapat melihat mengapa program membaca ingin mencari, sehingga dapat melanjutkan dari posisi terakhir, dan jadi saya ingin berperilaku seolah-olah file itu kosong (seperti telah terpotong).
Jadi, apakah ada beberapa opsi yang dapat ditetapkan pada pipa bernama untuk membuat mereka berperilaku seperti ini? Jika tidak apakah ada mode yang dapat diatur ketika syslog-ng membuka pipa agar berperilaku seperti ini (saya terbuka untuk membuat perubahan kode)? Atau aku anak sungai?