lockfile-progs(1) Lockfile programs lockfile-progs(1)

lockfile-progs - برنامه‌های خط فرمان برای قفل و باز کردن امن فایل‌ها و صندوق‌های پستی (از طریق liblockfile)

mail-lock [--use-pid] [--retry retry-count]
mail-unlock
mail-touchlock [--oneshot]
lockfile-create [--use-pid] [--retry retry-count] [--lock-name] filename
lockfile-remove [--lock-name] filename
lockfile-touch [--oneshot] [--lock-name] filename
lockfile-check [--use-pid] [--lock-name] filename

مجموعه lockfile-progs شامل برنامه‌هایی است که می‌توانند برای قفل کردن و باز کردن امن صندوق‌های پستی و فایل‌ها (از طریق liblockfile) استفاده شوند:

mail-lock - قفل کردن صندوق پستی کاربر جاری
mail-unlock - باز کردن قفل صندوق پستی کاربر جاری
mail-touchlock - تمدید (touch) قفل صندوق پستی کاربر جاری
lockfile-create - قفل کردن یک فایل مشخص
lockfile-remove - حذف قفل یک فایل مشخص
lockfile-touch - تمدید (touch) قفل یک فایل مشخص
lockfile-check - بررسی وضعیت قفل یک فایل مشخص

به‌طور پیش‌فرض، آرگومان filename به نام فایلی اشاره دارد که باید قفل شود و نام فایل قفل نیز به‌صورت filename.lock خواهد بود. با این حال، اگر گزینه --lock-name مشخص شود، در آن صورت filename به‌عنوان نام خود فایل قفل در نظر گرفته می‌شود.

هر یک از دستورات قفل‌گذاری صندوق پستی تلاش می‌کنند مسیر /var/spool/mail/<user> را قفل کنند، که در آن <user> نام مرتبط با شناسه کاربری مؤثر (effective user ID) است و از طریق geteuid(2) تعیین می‌شود.

هنگامی که یک فایل قفل شد، قفل باید حداقل هر پنج دقیقه یک‌بار تمدید (touch) شود، در غیر این صورت قفل کهنه (stale) تلقی شده و تلاش‌های بعدی برای قفل‌گذاری موفق خواهند بود. همچنین گزینه --use-pid و صفحه راهنمای lockfile_create(3) را ببینید.

دستور lockfile-check بررسی می‌کند که آیا یک قفل معتبر از قبل وجود دارد یا خیر.

--version

نسخه برنامه را در خروجی استاندارد چاپ کرده و خارج می‌شود.

-q, --quiet

جلوگیری از هرگونه خروجی. موفقیت یا شکست فقط از طریق وضعیت خروج مشخص خواهد شد.

-v, --verbose

فعال‌سازی خروجی تشخیصی (با جزئیات).

-l, --lock-name

پسوند .lock را به filename اضافه نمی‌کند. این گزینه برای دستورات lockfile-create، lockfile-remove، lockfile-touch یا lockfile-check کاربرد دارد.

-p, --use-pid

هر زمان که یک فایل قفل ایجاد می‌شود، شناسه فرآیند والد (PPID) را در فایل قفل می‌نویسد و هنگام بررسی اعتبار قفل از آن PID استفاده می‌کند. برای اطلاعات بیشتر صفحه راهنمای lockfile_create(3) را ببینید. این گزینه برای lockfile-create و lockfile-check کاربرد دارد. توجه: این گزینه بین ماشین‌هایی که از یک سیستم فایل مشترک استفاده می‌کنند به‌درستی کار نخواهد کرد.

-o, --oneshot

قفل را تمدید کرده و بلافاصله خارج می‌شود. این گزینه برای دستورات lockfile-touch و mail-touchlock کاربرد دارد. در صورت مشخص نشدن این گزینه، این دستورات تا زمان متوقف شدن، برای همیشه اجرا شده و هر یک دقیقه یک‌بار قفل را تمدید می‌کنند.

-r retry-count, --retry retry-count

قبل از انصراف، به تعداد retry-count بار برای قفل کردن filename تلاش می‌کند. بین هر تلاش و تلاش بعدی تاخیری بیشتر از بار پیشین (با گام‌های ۵ ثانیه‌ای) اعمال می‌شود تا زمانی که حداکثر تاخیر بین تلاش‌ها به یک دقیقه برسد. اگر retry-count مشخص نشود، مقدار پیش‌فرض ۹ است که در صورت ناموفق بودن تمام ۹ تلاش، پس از ۲۲۵ ثانیه متوقف خواهد شد.

قفل کردن یک فایل در طول یک فرآیند طولانی:

lockfile-create /some/file
lockfile-touch /some/file &
# ذخیره PID فرآیند lockfile-touch
BADGER="$!"
do-something-important-with /some/file
kill "${BADGER}"
lockfile-remove /some/file

0

برای lockfile-check این مقدار نشان‌دهنده وجود یک قفل معتبر است، در غیر این صورت صرفاً نشان‌دهنده اجرای موفقیت‌آمیز برنامه است.

غیر از 0

برای lockfile-check وضعیت خروج غیرصفر نشان می‌دهد که قفل مشخص‌شده وجود ندارد یا معتبر نیست. برای سایر برنامه‌ها نشان‌دهنده بروز یک مشکل یا خطا است.

maillock(3)
touchlock(3)
mailunlock(3)
lockfile_create(3)
lockfile_remove(3)
lockfile_touch(3)
lockfile_check(3)

نوشته‌شده توسط Rob Browning <rlb@defaultvalue.org>

2024-12-10 0.2.0