ฉันมีโปรแกรมที่จัดเก็บการตั้งค่าใน ~/.config/myprogram
ฉันใช้ทั้งแบบโต้ตอบและกับระบบคิวแบบแบตช์ เมื่อเรียกใช้แบบโต้ตอบฉันต้องการให้โปรแกรมนี้ใช้ไฟล์การกำหนดค่าของฉัน แต่เมื่อทำงานในโหมดแบทช์ไฟล์การกำหนดค่าไม่จำเป็นเพราะฉันระบุตัวเลือกบรรทัดคำสั่งที่เขียนทับการตั้งค่าที่เกี่ยวข้องทั้งหมด นอกจากนี้การเข้าถึงไฟล์กำหนดค่าผ่านเครือข่ายจะเพิ่มเวลาเริ่มต้นของโปรแกรมเป็นเวลาหลายวินาที หากไฟล์ไม่มีอยู่โปรแกรมจะเริ่มเร็วขึ้นมาก (เนื่องจากแต่ละงานใช้เวลาเพียงหนึ่งนาทีเท่านั้น แต่เนื่องจากฉันใช้โปรแกรมแบบโต้ตอบฉันไม่ต้องการย้าย / ลบไฟล์การกำหนดค่าตลอดเวลา ขึ้นอยู่กับเวลาที่งานแบ็ตช์ของฉันถูกกำหนดเวลาไว้ในคลัสเตอร์ (ขึ้นอยู่กับการใช้งานของผู้ใช้รายอื่น)
(นอกเหนือจาก: ประสิทธิภาพของไฟล์เครือข่ายช้ามากอาจเป็นข้อบกพร่อง แต่ฉันเป็นเพียงผู้ใช้ของคลัสเตอร์ดังนั้นฉันสามารถแก้ไขได้เท่านั้นไม่สามารถแก้ไขได้)
ฉันสามารถสร้างเวอร์ชันของโปรแกรมที่ไม่อ่านไฟล์การกำหนดค่า (หรือมีตัวเลือกบรรทัดคำสั่งไม่ให้ใช้) สำหรับการใช้แบทช์ แต่สภาพแวดล้อมการสร้างของโปรแกรมนี้ออกแบบมาไม่ดีและติดตั้งยาก ฉันชอบที่จะใช้ไบนารีที่ติดตั้งผ่านผู้จัดการแพ็คเกจของระบบของฉัน
ฉันจะหลอกลวงอินสแตนซ์ของโปรแกรมนี้โดยเฉพาะเพื่อแกล้งทำเป็นไฟล์การกำหนดค่าของฉันไม่มีอยู่ (โดยไม่ต้องแก้ไขโปรแกรม) ฉันหวังว่าจะได้รูปแบบ pretendfiledoesntexist ~/.config/myprogram -- myprogram --various-options...
แต่ฉันเปิดให้โซลูชั่นอื่น ๆ
LD_PRELOAD
เบ็ด ที่ง่าย (คุณสามารถดำเนินการว่าในหนึ่งหรือสองชั่วโมงถ้าคุณรู้ว่า C) ptrace
กว่าทางเลือกซึ่งเป็น คุณอาจใช้ปลอมแปลงรูทเพื่อทำสิ่งนี้ (ซึ่งก็คือ LD_PRELOAD ฉันเชื่อ)