| FLOCK(1) | دستورهای کاربری | FLOCK(1) |
نام (NAME)
flock - مدیریت قفلهای پرونده در اسکریپتهای پوسته
خلاصه دستور (SYNOPSIS)
flock [options] file|directory command [arguments]
flock [options] file|directory -c command
flock [options] number
توضیحات (DESCRIPTION)
این ابزار قفلهای flock(2) را از درون اسکریپتهای پوسته یا از خط فرمان مدیریت میکند.
حالتهای اول و دوم از ساختارهای بالا، اجرای یک command را درون یک قفل قرار میدهند، به شیوهای مشابه با su(1) یا newgrp(1). آنها یک file یا directory مشخصشده را قفل میکنند، که در صورت عدم وجود (با فرض دسترسیهای مناسب) ایجاد میشود. بهطور پیشفرض، اگر قفل فوراً به دست نیاید، flock منتظر میماند تا قفل در دسترس قرار گیرد.
حالت سوم از یک پروندهٔ باز بر اساس number توصیفگر پرونده (file descriptor) آن استفاده میکند. برای نحوهٔ استفاده از آن، مثالهای زیر را ببینید.
گزینهها (OPTIONS)
-c, --command command
-E, --conflict-exit-code number
-F, --no-fork
-e, -x, --exclusive
-n, --nb, --nonblock
-o, --close
-s, --shared
-u, --unlock
-w, --wait, --timeout seconds
--fcntl
این قابلیت تنها در نگارشهای هسته >= 3.15 در دسترس است.
--verbose
-h, --help
-V, --version
وضعیت خروج (EXIT STATUS)
این دستور برای همه چیز از مقادیر وضعیت خروج <sysexits.h> استفاده میکند، به جز هنگام استفاده از هر یک از گزینههای -n یا -w که عدم موفقیت در به دست آوردن قفل را با وضعیت خروجی تعیینشده توسط گزینهٔ -E، یا مقدار پیشفرض 1 گزارش میدهند. وضعیت خروجی دادهشده با -E باید در بازهٔ 0 تا 255 باشد.
هنگام استفاده از حالت command، اگر اجرای فرایند فرزند موفق باشد، وضعیت خروجی همان وضعیت خروجی دستور فرزند است.
نکات (NOTES)
دستور flock بنبست (deadlock) را تشخیص نمیدهد. برای جزئیات به flock(2) مراجعه کنید.
برخی سامانههای پرونده (مانند NFS و CIFS) پیادهسازی محدودی از flock(2) دارند و ممکن است flock همیشه با شکست مواجه شود. برای جزئیات به flock(2)، nfs(5) و mount.cifs(8) مراجعه کنید. بسته به گزینههای mount، ممکن است flock در آنجا همیشه ناموفق باشد.
مثالها (EXAMPLES)
توجه داشته باشید که "shell> " در مثالها اعلان خط فرمان است.
shell1> flock /tmp -c cat; shell2> flock -w .007 /tmp -c echo; /bin/echo $?
shell1> flock -s /tmp -c cat; shell2> flock -s -w .007 /tmp -c echo; /bin/echo $?
shell> flock -x local-lock-file echo 'a b c'
(; flock -n 9 || exit 1; # ... commands executed under lock ...; ) 9>/var/lock/mylockfile
[ "${FLOCKER}" != "$0" ] && exec env FLOCKER="$0" flock -en "$0" "$0" "$@" || :
shell> exec 4<>/var/lock/mylockfile; shell> flock -n 4
نویسندگان (AUTHORS)
H. Peter Anvin <hpa@zytor.com>
حق نشر (COPYRIGHT)
Copyright © 2003-2006 H. Peter Anvin. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
همچنین ببینید (SEE ALSO)
گزارش باگها (REPORTING BUGS)
برای گزارش باگها از ردیاب مشکلات https://github.com/util-linux/util-linux/issues.
دسترسی (AVAILABILITY)
دستور flock بخشی از بستهٔ util-linux است که میتوان آن را از بایگانی هسته لینوکس https://www.kernel.org/pub/linux/utils/util-linux.
| 2026-06-16 | util-linux 2.41.5 |