LOCKFILE(1)

الاسم
lockfile - منشئ ملفات الإشارة الشرطية

موجز
lockfile -وقت_النوم | -r عدد_المحاولات |
-l مهلة_القفل | -s تعليق | -! | -ml | -mu | اسم_الملف ...

الوصف
يمكن استخدام lockfile لإنشاء ملف إشارة واحد أو أكثر. إذا لم يتمكن lockfile من إنشاء جميع الملفات المحددة (بالترتيب المحدد)، فإنه ينتظر وقت_النوم (المبدئي 8) ثوانٍ ويعيد محاولة آخر ملف لم ينجح. يمكنك تحديد عدد المحاولات حتى يتم إرجاع الفشل. إذا كان عدد المحاولات هو -1 (المبدئي، أي -r-1) فسيقوم lockfile بإعادة المحاولة إلى الأبد.

إذا انتهى عدد المحاولات قبل إنشاء جميع الملفات، يقوم lockfile بإرجاع الفشل وإزالة جميع الملفات التي أنشأها حتى تلك النقطة.

يمكن استخدام lockfile كشرط لحلقة في سكريبت شل بسهولة باستخدام العلم -! لعكس حالة الخروج. لمنع الحلقات اللانهائية، لا يتم عكس حالات الفشل لأي سبب آخر غير وجود lockfile بالفعل إلى نجاح، بل يتم إرجاعها كحالات فشل.

يمكن تحديد جميع الأعلام في أي مكان في سطر الأوامر، وسيتم معالجتها عند مواجهتها. يتم تحليل سطر الأوامر ببساطة من اليسار إلى اليمين.

جميع الملفات التي ينشئها lockfile ستكون للقراءة فقط، وبالتالي يجب إزالتها باستخدام rm -f.

إذا قمت بتحديد مهلة_القفل، فسيتم إزالة ملف القفل قسراً بعد مرور مهلة_القفل ثانية منذ آخر تعديل/إنشاء لملف القفل (على الأرجح بواسطة برنامج آخر مات بشكل غير متوقع منذ فترة طويلة، وبالتالي لم يتمكن من تنظيف أي ملفات قفل متبقية). Lockfile محصن ضد انحراف الساعة. بعد إزالة ملف القفل قسراً، يتم أخذ تعليق لمدة تعليق ثانية (المبدئي 16) في الاعتبار، لمنع الإزالة الفورية غير المقصودة لأي ملف قفل تم إنشاؤه حديثاً بواسطة برنامج آخر (قارن SUSPEND في procmail(1)).

  أقفال صندوق البريد
إذا كانت صلاحيات دليل البريد المؤقت للنظام تسمح بذلك، أو إذا كان lockfile مضبوطاً بشكل مناسب على setgid، فسيكون قادراً على قفل وفتح قفل صندوق البريد الخاص بك باستخدام الخيارين -ml و -mu على التوالي.

أمثلة
لنفترض أنك تريد التأكد من أن الوصول إلى الملف "important" متسلسل، أي أنه لا يُسمح لأكثر من برنامج أو سكريبت شل بالوصول إليه. من أجل البساطة، لنفترض أنه سكريبت شل. في هذه الحالة يمكنك حلها كالتالي:
    ... lockfile important.lock ... access_"important"_to_your_hearts_content ... rm -f important.lock ...
الآن إذا اتبعت جميع السكريبتات التي تصل إلى "important" هذا التوجيه، فستكون متأكداً من أنه سيتم تنفيذ سكريبت واحد على الأكثر بين الأمرين `lockfile` و `rm`.

البيئة

LOGNAME
    يُستخدم كتلميح لتحديد اسم تسجيل الدخول للمستدعي

الملفات

/etc/passwd
    للتحقق و/أو تصحيح اسم تسجيل الدخول للمستدعي (ولمعرفة دليله الرئيسي HOME، إذا لزم الأمر)

/var/mail/$LOGNAME.lock
    قفل لصندوق البريد النظامي، لن يتم أخذ متغيرات البيئة الموجودة هنا من البيئة، بل سيتم تحديدها من خلال النظر في /etc/passwd

انظر أيضًا
rm(1), mail(1), sendmail(8), procmail(1)

التشخيص

اسم الملف طويل جداً، ...
    استخدم أسماء ملفات أقصر.

رُفض فك القفل القسري على "x"
    لا يوجد إذن كتابة في الدليل الذي يوجد به ملف القفل "x"، أو أكثر من ملف قفل يحاول فرض قفل في نفس الوقت تماماً.

يُفرض القفل على "x"
    سيتم إزالة ملف القفل "x" قسراً بسبب انتهاء المهلة (قارن LOCKTIMEOUT في procmail(1)).

نفاد الذاكرة، ...
    نفدت مساحة المبادلة في النظام.

تم استلام إشارة، ...
    سيزيل Lockfile أي شيء أنشأه حتى الآن وينهي.

عذراً، ...
    تم الوصول إلى حد المحاولات.

يُبتر "x" وتُعاد محاولة القفل
    "x" لا يبدو اسماً صالحاً لملف.

حاول الدعاء، ...
    أدلة فرعية مفقودة أو صلاحيات غير كافية.

العلل
بالتأكيد أقل من واحد.

تحذيرات
سلوك العلم -!، رغم فائدته، ليس بالضرورة بديهيًا أو متسقًا. عند اختبار قيمة إرجاع lockfile، ينبغي على كُتّاب سكريبتات الصدفة التفكير بعناية فيما إذا كانوا يريدون استخدام العلم -!، أو عكس الاختبار ببساطة، أو إجراء تبديل على رمز الخروج الدقيق. بشكل عام، يجب استخدام العلم -! فقط عندما يكون lockfile شرطًا لحلقة.

متنوعات
Lockfile مقاوم لـ NFS ونظيف ثماني البتات.

ملاحظات
استدعاء lockfile مع الخيارات -h أو -? سيجعله يعرض صفحة مساعدة لسطر الأوامر. استدعاؤه مع الخيار -v سيجعله يعرض معلومات إصداره.

أعلام -! المتعددة ستعكس حالة الإرجاع.

بما أن الأعلام يمكن أن تظهر في أي مكان في سطر الأوامر، يجب أن يسبق أي اسم ملف يبدأ بـ '-' بـ './'.

عدد المحاولات لن يُعاد تعيينه عند إنشاء أي ملف تالٍ (أي، تُستهلك ببساطة). ومع ذلك، يمكن إعادة تعيينه بتحديد -rمحاولات_جديدة بعد كل ملف في سطر الأوامر.

على الرغم من أن الملفات بأي اسم يمكن استخدامها كملفات قفل، فمن الممارسات الشائعة استخدام الامتداد `.lock' لقفل مجلدات البريد (يُلحق باسم مجلد البريد). في حال عدم الرغبة في القلق بشأن أسماء الملفات الطويلة جدًا وعدم الاضطرار للامتثال لأي اتفاقية أخرى لاسم ملف القفل، فإن طريقة ممتازة لتوليد اسم ملف قفل مطابق لملف موجود بالفعل هي أخذ البادئة `lock.' وإلحاق رقم العقدة (i-node) للملف الذي سيتم قفله.

  SOURCE
هذا البرنامج جزء من حزمة معالجة بريد procmail (v3.23pre) المتاحة في http://www.procmail.org/ أو ftp.procmail.org في pub/procmail/.

  MAILINGLIST
توجد قائمة بريدية للأسئلة المتعلقة بأي برنامج في حزمة procmail:
    <procmail-users@procmail.org>
        لتقديم الأسئلة/الأجوبة.
    <procmail-users-request@procmail.org>
        لطلبات الاشتراك.

إذا كنت ترغب في البقاء على اطلاع بالإصدارات الجديدة والرقع الرسمية، أرسل طلب اشتراك إلى
    procmail-announce-request@procmail.org
(هذه قائمة للقراءة فقط).

المؤلفون
ستيفن ر. فان دن بيرج
    <srb@cuci.nl>
Philip A. Guenther
    <guenther@sendmail.com>

ترجمة
تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي <zayed.alsaidi@gmail.com>

هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3 (https://www.gnu.org/licenses/gpl-3.0.html) أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.

إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: kde-l10n-ar@kde.org.