Theme
Primary Color

منع تشغيل نسختين من مهمة بإستخدام 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 ففشل مباشرة بدل تعليق السكربت

جرب بنفسك

انقل المحاولة الثانية خارج الأقواس وشاهد نجاحها بعد تحرير القفل

ملحوظة

القفل تعاوني وكل نسخ المهمة لازم تستخدم نفس الملف ولا تفترض نفس السلوك على كل أنظمة الملفات الشبكية

linux شرح