| DOTLOCKFILE(1) | Cistron Utilities | DOTLOCKFILE(1) |
نام (NAME)
dotlockfile - ابزاری برای مدیریت فایلهای قفل
خلاصه دستور (SYNOPSIS)
dotlockfile -l [-r retries] [-i
interval] [-p] [-q] <-m |
lockfile>
dotlockfile -l [-r retries] [-i
interval] [-p] [-q] <-m |
lockfile> [-P] cmd args ...
dotlockfile -u | -t
توضیحات (DESCRIPTION)
دستور dotlockfile یک ابزار خط فرمانی برای ایجاد، آزمودن و حذف قابل اطمینان فایلهای قفل (lockfile) است. این ابزار فایلهای قفل را بهطور قابلاطمینان بر روی فایلسیستمهای محلی و NFS ایجاد میکند، زیرا مراحل حیاتی بررسی فایل قفل از پیش موجود و ایجاد آن، بهطور اتمیک با یک فراخوانی منفرد به link(2) انجام میشود. صفحه راهنمای lockfile_create(3) الگوریتم مورد استفاده را شرح میدهد.
دستور dotlockfile با ویژگی SETGID mail نصب شده است و بنابراین میتواند برای قفل و باز کردن صندوقهای پستی (mailbox) نیز استفاده شود، حتی اگر دایرکتوری mailspool تنها توسط گروه mail قابل نوشتن باشد.
نام dotlockfile از روش قفلگذاری صندوقهای پستی جهت بهروزرسانی در بسیاری از سیستمهای UNIX برگرفته شده است. یک فایل قفل با همان نام فایل صندوق پستی، اما با الحاق رشتهٔ ".lock" ایجاد میشود.
نامهای dotlock و lockfile پیشتر گرفته شده بودند – از این رو نام dotlockfile انتخاب شد :).
گزینهها (OPTIONS)
- -l
- ایجاد یک
فایل قفل در
صورتی که
فایل قفل
معتبر از
پیش موجودی
یافت نشود؛
در غیر این
صورت منتظر
مانده و
مطابق با
گزینهٔ -r
دوباره
تلاش
میکند.
فاصلهٔ
زمانی بین
تلاشهای
مجدد
میتواند
بهطور
صریح با
گزینهٔ -i
تنظیم شود.
این گزینه
(-l) پیشفرض
است،
بنابراین
میتوان آن
را نادیده
گرفت.
یک فایل قفل معتبر تلقی میشود،
• اگر شامل process-id یک فرایند در حال اجرا باشد،
• یا اگر شامل هیچ process-id نباشد و کمتر از ۵ دقیقه پیش لمس (touch) شده باشد (برچسب زمانی آن جدیدتر از ۵ دقیقه باشد). - -r retries
- تعداد دفعاتی که dotlockfile در صورت شکست اولیه پیش از تسلیم شدن، برای دستیابی به قفل مجدداً تلاش میکند. مدت زمان خواب اولیه پس از شکست در دستیابی به قفل، ۵ ثانیه است. پس از هر تلاش مجدد، فاصلهٔ خواب بهصورت افزایشی ۵ ثانیه زیاد میشود تا جایی که به حداکثر ۶۰ ثانیه بین دفعات برسد، مگر آنکه با -i لغو شود. تعداد پیشفرض تلاشهای مجدد ۵ است. برای تنها یکبار تلاش، از "-r 0" استفاده کنید. برای تلاش نامحدود، از "-r -1" استفاده کنید.
- -i interval
- یک بازهٔ زمانی ثابت برای تلاش مجدد تنظیم میکند.
- -u
- حذف یک فایل قفل.
- -t
- لمس کردن (touch) یک فایل قفل موجود (بهروزرسانی برچسب زمانی). برای فایلهای قفل روی فایلسیستمهای NFS مفید است. برای فایلهای قفل روی فایلسیستمهای محلی، گزینهٔ -p ترجیح داده میشود.
- -p
- نوشتن process-id فرایند فراخواننده (یا خود dotlockfile در صورتی که دستوری اجرا شود) درون فایل قفل. همچنین هنگام آزمودن یک فایل قفل موجود، محتویات آن برای یافتن process-id یک فرایند در حال اجرا بررسی میشود تا معتبر بودن فایل قفل تأیید گردد. بدیهی است که این گزینه تنها برای فایلهای قفل روی فایلسیستمهای محلی مفید است.
- -m
- قفل یا باز کردن صندوق پستی کاربر فعلی. مسیر صندوق پستی، دایرکتوری پیشفرض mailspool سیستم است (معمولاً /var/mail) که نام کاربری بهدستآمده از getpwuid() به انتهای آن افزوده میشود. اگر متغیر محیطی $MAIL تنظیم شده باشد، بهجای آن استفاده میشود. سپس رشتهٔ ".lock" اضافه میشود تا نام واقعی فایل قفل حاصل شود.
- -q
- هشدارها یا خطاها را در خروجی خطای استاندارد چاپ نمیکند. در داخل توسط liblockfile زمانی که dotlockfile را بهعنوان یک برنامهٔ کمکی اجرا میکند، استفاده میشود.
- -P
- در صورت موفقیت در «قفلگذاری و اجرای دستور»، با وضعیت صفر خارج نشود، بلکه مقدار خروج دستور اجراشده را منتقل کند.
- lockfile
- فایل قفلی که باید ایجاد یا حذف شود. در صورت مشخص شدن گزینهٔ -m نباید تعیین شود.
- command argument ...
- ایجاد فایل قفل، اجرای command ، انتظار برای پایان یافتن آن، و سپس حذف فایل قفل.
مقدار بازگشتی (RETURN VALUE)
صفر در صورت موفقیت، و غیر صفر در صورت شکست. هنگام قفل کردن (حالت پیشفرض، یا با گزینهٔ -l)، dotlockfile همان مقادیر تابع کتابخانهای lockfile_create(3) را بازمیگرداند. باز کردن یک فایل قفل ناموجود، خطا به شمار نمیآید.
مگر اینکه گزینهٔ -P مشخص شده باشد، هنگام اجرای یک دستور، مقدار بازگشتی با مقدار وضعیت خروج دستوری که اجرا شده است مطابقت ندارد. اگر قفلگذاری و باز کردن قفل موفقیتآمیز باشد، وضعیت خروج صفر خواهد بود.
نکات (NOTES)
فایل قفل دقیقاً با همان نامی که در خط فرمان آمده است ایجاد میشود. پسوند ".lock" بهطور خودکار افزوده نمیشود.
این ابزار بسیار شبیه به ابزار lockfile(1) ارائهشده به همراه procmail و ابزار mutt_dotlock(1) ارائهشده به همراه mutt است. با این حال آرگومانهای خط فرمان و همچنین وضعیت بازگشتی آنها تفاوت دارد. باور بر این است که dotlockfile انعطافپذیرترین پیادهسازی است، چرا که بهطور خودکار تشخیص میدهد چه زمانی برای قفل کردن یک صندوق پستی به امتیازات ویژه نیاز دارد، و این کار را با ایمنی کامل انجام میدهد.
صفحه راهنمای lockfile_create(3) که در بالا ذکر شد، در بستهٔ liblockfile-dev موجود است.
گزارش باگها (BUGS)
هیچ موردی شناخته نشده است.
همچنین ببینید (SEE ALSO)
نویسندگان (AUTHORS)
Miquel van Smoorenburg
| January 10, 2017 |