منع تشغيل نسختين من مهمة بإستخدام flock
قفل ملف مشترك يساعد المهام المتعاونة على عدم تنفيذ نفس العمل في الوقت نفسه
نفذ المثال بإستخدام Bash داخل مجلد تدريب جديد تملكه على GNU/Linux والأوامر لا تحتاج sudo
المثال العملي
(
flock -x 9
if flock -n job.lock -c true; then
printf 'Second Lock Acquired\n'
else
printf 'Job Already Locked\n'
fi
) 9> job.lockالنتيجة
Job Already Lockedالعملية الأولى ماسكة القفل والطلب الثاني غير منتظر بسبب -n ففشل مباشرة بدل تعليق السكربت
جرب بنفسك
انقل المحاولة الثانية خارج الأقواس وشاهد نجاحها بعد تحرير القفل
ملحوظة
القفل تعاوني وكل نسخ المهمة لازم تستخدم نفس الملف ولا تفترض نفس السلوك على كل أنظمة الملفات الشبكية