Esiste un modo per farlo in modo che quando i programmi tentano di eseguire seek()
operazioni su una named pipe tornerà a buon fine (ma agisce come se la pipe fosse un file vuoto) anziché "Ricerca illegale"?
Ho tutti gli ultimi bit di registrazione sul mio sistema memorizzati in un database SQLite, non ho file da nessuna parte. Tuttavia, ci sono alcuni programmi che hanno problemi con questo. Ci sono 2 casi specifici;
- Un programma vuole scrivere su un file di registro che syslog-ng ha creato come pipe denominata e da cui sta leggendo. Il programma vuole eseguire un
seek()
per qualche motivo e poi fallisce. - Un programma (come denyhosts o fail2ban) vuole leggere da un file di registro che syslog-ng ha creato come pipe denominata e su cui sta scrivendo. Il programma vuole eseguirne uno
seek()
e fallisce.
Idealmente, mi piacerebbe che questi tentativi si comportassero come se la pipe denominata fosse solo un file vuoto. Non vedo alcun motivo per cui un programma che scrive un registro dovrebbe comunque eseguire una ricerca, dovrebbe solo aprire il file per aggiungere e iniziare a scrivere. Vedo perché una lettura di programma vorrebbe cercare, in modo che potesse riprendere dalla sua ultima posizione, e quindi vorrei che si comportasse come se il file fosse vuoto (come se fosse stato troncato).
Quindi c'è qualche opzione che può essere impostata su named pipe per farli comportare in questo modo? Altrimenti esiste una modalità che può essere impostata quando syslog-ng apre la pipe per farlo funzionare in questo modo (sono aperto a fare modifiche al codice)? O sono su un torrente?