ตัวอย่างการล็อก "มาตรฐาน" ที่ฉันเห็นมีบางอย่างเช่น ...
(
flock -n 200 || exit 1;
# do stuff
) 200>program.lock
การทดสอบexec
ณ จุดนั้นปลอดภัยหรือไม่? กระบวนการย่อยจะยังคงล็อคหรือไม่
(
flock -n 200 || exit 1;
exec /usr/bin/python vendors-notcoolstuff.py
) 200>program.lock
ฉันจำได้ว่ากระบวนการ exec'd จะคงไว้ซึ่งตัวอธิบายไฟล์ที่เปิดอยู่และเนื่องจาก flock ใช้ตัวอธิบายไฟล์มันควรจะทำงานได้ แต่ฉันไม่สามารถหาเอกสารที่ทำให้ชัดเจนและชัดเจนได้
สำหรับเร็กคอร์ดนี่เป็นข้อมูลเฉพาะสำหรับ Linux