'\" t .\" ** The above line should force tbl to be a preprocessor ** .\" .\" Copyright (C) 1998-2008 2021 2024 Rob Browning .\" .\" You may distribute under the terms of the GNU General Public .\" License as specified in the file COPYING that comes with the .\" lockfile\-progs distribution. .\" .TH lockfile\-progs 1 "2024-12-10" "0.2.0" "Lockfile programs" .SH "نام (NAME)" lockfile\-progs \- برنامه‌های خط فرمان برای قفل و باز کردن امن فایل‌ها و صندوق‌های پستی (از طریق liblockfile) .SH "خلاصه دستور (SYNOPSIS)" .nf \fBmail\-lock\fR [\-\-use\-pid] [\-\-retry \fIretry\-count\fR] \fBmail\-unlock\fR \fBmail\-touchlock\fR [\-\-oneshot] \fBlockfile\-create\fR [\-\-use\-pid] [\-\-retry \fIretry\-count\fR] [\-\-lock\-name] \fIfilename\fR \fBlockfile\-remove\fR [\-\-lock\-name] \fIfilename\fR \fBlockfile\-touch\fR [\-\-oneshot] [\-\-lock\-name] \fIfilename\fR \fBlockfile\-check\fR [\-\-use\-pid] [\-\-lock\-name] \fIfilename\fR .fi .SH "توضیحات (DESCRIPTION)" .PP مجموعه .B lockfile\-progs شامل برنامه‌هایی است که می‌توانند برای قفل کردن و باز کردن امن صندوق‌های پستی و فایل‌ها (از طریق liblockfile) استفاده شوند: .nf .RS 4 \fBmail\-lock\fR \- قفل کردن صندوق پستی کاربر جاری \fBmail\-unlock\fR \- باز کردن قفل صندوق پستی کاربر جاری \fBmail\-touchlock\fR \- تمدید (touch) قفل صندوق پستی کاربر جاری \fBlockfile\-create\fR \- قفل کردن یک فایل مشخص \fBlockfile\-remove\fR \- حذف قفل یک فایل مشخص \fBlockfile\-touch\fR \- تمدید (touch) قفل یک فایل مشخص \fBlockfile\-check\fR \- بررسی وضعیت قفل یک فایل مشخص .RE .fi .PP به‌طور پیش‌فرض، آرگومان .I filename به نام فایلی اشاره دارد که باید قفل شود و نام فایل قفل نیز به‌صورت .IR filename .lock خواهد بود. با این حال، اگر گزینه .B \-\-lock\-name مشخص شود، در آن صورت .I filename به‌عنوان نام خود فایل قفل در نظر گرفته می‌شود. .PP هر یک از دستورات قفل‌گذاری صندوق پستی تلاش می‌کنند مسیر .RI /var/spool/mail/ را قفل کنند، که در آن .I نام مرتبط با شناسه کاربری مؤثر (effective user ID) است و از طریق .BR geteuid (2) تعیین می‌شود. .PP هنگامی که یک فایل قفل شد، قفل باید حداقل هر پنج دقیقه یک‌بار تمدید (touch) شود، در غیر این صورت قفل کهنه (stale) تلقی شده و تلاش‌های بعدی برای قفل‌گذاری موفق خواهند بود. همچنین گزینه .B \-\-use\-pid و صفحه راهنمای .BR lockfile_create (3) را ببینید. .PP دستور .B lockfile\-check بررسی می‌کند که آیا یک قفل معتبر از قبل وجود دارد یا خیر. .SH "گزینه‌ها (OPTIONS)" .PP \fB\-\-version\fR .RS 4 نسخه برنامه را در خروجی استاندارد چاپ کرده و خارج می‌شود. .RE .PP .\" --quiet \fB\-q\fR, \fB\-\-quiet\fR .RS 4 جلوگیری از هرگونه خروجی. موفقیت یا شکست فقط از طریق وضعیت خروج مشخص خواهد شد. .RE .PP .\" --verbose \fB\-v\fR, \fB\-\-verbose\fR .RS 4 فعال‌سازی خروجی تشخیصی (با جزئیات). .RE .PP .\" --lock-name \fB\-l\fR, \fB\-\-lock\-name\fR .RS 4 پسوند .B .lock را به .I filename اضافه نمی‌کند. این گزینه برای دستورات \fBlockfile\-create\fR، \fBlockfile\-remove\fR، \fBlockfile\-touch\fR یا \fBlockfile\-check\fR کاربرد دارد. .RE .PP .\" --use-pid \fB\-p\fR, \fB\-\-use\-pid\fR .RS 4 هر زمان که یک فایل قفل ایجاد می‌شود، شناسه فرآیند والد (PPID) را در فایل قفل می‌نویسد و هنگام بررسی اعتبار قفل از آن PID استفاده می‌کند. برای اطلاعات بیشتر صفحه راهنمای .BR lockfile_create (3) را ببینید. این گزینه برای \fBlockfile\-create\fR و \fBlockfile\-check\fR کاربرد دارد. .B توجه: این گزینه بین ماشین‌هایی که از یک سیستم فایل مشترک استفاده می‌کنند به‌درستی کار نخواهد کرد. .RE .PP .\" --oneshot \fB\-o\fR, \fB\-\-oneshot\fR .RS 4 قفل را تمدید کرده و بلافاصله خارج می‌شود. این گزینه برای دستورات \fBlockfile\-touch\fR و \fBmail\-touchlock\fR کاربرد دارد. در صورت مشخص نشدن این گزینه، این دستورات تا زمان متوقف شدن، برای همیشه اجرا شده و هر یک دقیقه یک‌بار قفل را تمدید می‌کنند. .RE .PP .\" --retry \fB\-r\fR \fIretry\-count\fR, \fB\-\-retry\fR \fIretry\-count\fR .RS 4 قبل از انصراف، به تعداد .I retry\-count بار برای قفل کردن .I filename تلاش می‌کند. بین هر تلاش و تلاش بعدی تاخیری بیشتر از بار پیشین (با گام‌های ۵ ثانیه‌ای) اعمال می‌شود تا زمانی که حداکثر تاخیر بین تلاش‌ها به یک دقیقه برسد. اگر .I retry\-count مشخص نشود، مقدار پیش‌فرض ۹ است که در صورت ناموفق بودن تمام ۹ تلاش، پس از ۲۲۵ ثانیه متوقف خواهد شد. .RE .SH "مثال‌ها (EXAMPLES)" .PP .B قفل کردن یک فایل در طول یک فرآیند طولانی: .PP .nf lockfile\-create /some/file lockfile\-touch /some/file & # ذخیره PID فرآیند lockfile\-touch BADGER="$!" do\-something\-important\-with /some/file kill "${BADGER}" lockfile\-remove /some/file .fi .SH "وضعیت خروج (EXIT STATUS)" .PP \fB0\fR .RS 4 برای \fBlockfile\-check\fR این مقدار نشان‌دهنده وجود یک قفل معتبر است، در غیر این صورت صرفاً نشان‌دهنده اجرای موفقیت‌آمیز برنامه است. .RE .PP \fBغیر از 0\fR .RS 4 برای \fBlockfile\-check\fR وضعیت خروج غیرصفر نشان می‌دهد که قفل مشخص‌شده وجود ندارد یا معتبر نیست. برای سایر برنامه‌ها نشان‌دهنده بروز یک مشکل یا خطا است. .RE .SH "همچنین ببینید (SEE ALSO)" .nf \fBmaillock\fR(3) \fBtouchlock\fR(3) \fBmailunlock\fR(3) \fBlockfile_create\fR(3) \fBlockfile_remove\fR(3) \fBlockfile_touch\fR(3) \fBlockfile_check\fR(3) .fi .SH "نویسنده (AUTHOR)" نوشته‌شده توسط Rob Browning