มีวิธีใดบ้างที่จะทำให้โปรแกรมพยายามดำเนินseek()
การกับไพพ์ที่มีชื่อมันจะกลับมาประสบความสำเร็จ (แต่ทำราวกับว่าไพพ์เป็นไฟล์เปล่า) แทนที่จะเป็น 'Illegal แสวงหา'?
ฉันมีการบันทึกในระบบของฉันเล็กน้อยทุกครั้งที่เก็บไว้ในฐานข้อมูล SQLite ฉันไม่มีไฟล์ทุกที่ อย่างไรก็ตามมีบางโปรแกรมที่มีปัญหากับสิ่งนี้ มี 2 กรณีที่เฉพาะเจาะจง;
- โปรแกรมต้องการเขียนไปยังล็อกไฟล์ซึ่ง syslog-ng ได้สร้างขึ้นเป็นไพพ์ที่มีชื่อและกำลังอ่านจาก โปรแกรมต้องการดำเนินการ
seek()
ด้วยเหตุผลบางอย่างแล้วล้มเหลว - โปรแกรม (เช่น denyhosts หรือ fail2ban) ต้องการอ่านจากไฟล์บันทึกที่ syslog-ng สร้างขึ้นเป็นไพพ์ที่มีชื่อและกำลังเขียนถึง โปรแกรมต้องการดำเนินการ
seek()
กับมันและล้มเหลว
เป็นการดีที่ฉันต้องการให้สิ่งเหล่านี้พยายามทำตัวราวกับว่าไพพ์ที่มีชื่อเป็นเพียงไฟล์ว่างเปล่า ฉันไม่เห็นเหตุผลว่าทำไมโปรแกรมที่เขียนบันทึกจะต้องทำการค้นหาต่อไปมันควรเปิดไฟล์เพื่อผนวกและเริ่มเขียน ฉันสามารถดูได้ว่าเหตุใดการอ่านของโปรแกรมจึงต้องการค้นหาเพื่อให้มันสามารถกลับมาทำงานจากตำแหน่งสุดท้ายได้ดังนั้นฉันจึงอยากให้มันทำงานเหมือนกับว่าไฟล์นั้นว่างเปล่า (เหมือนถูกตัดทอน)
ดังนั้นมีตัวเลือกที่สามารถตั้งค่าบน pipes ชื่อเพื่อให้พวกเขาทำงานแบบนี้? หากไม่มีโหมดที่สามารถตั้งค่าได้เมื่อ syslog-ng เปิดไปป์เพื่อให้มันทำงานแบบนี้ (ฉันเปิดเพื่อทำการเปลี่ยนแปลงรหัส)? หรือว่าฉันเป็นห้วย