НАЗВА
flock - замикає файл, а потім виконує команду з утриманням замка
ЗВЕДЕННЯ
flock [ --shared | --timeout=секунд ] файл команда ...
ОПИС
Команда flock накладає замок на файл за допомогою системного виклику ?flock(2), а відтак виконує вказану команду з утриманням замка. Залежно від вказаних прапорців, замок може бути або виключним, або спільний, і поводження у разі суперництва над замком може полягати в необмеженому очікуванні, доки замок стане доступним (стандартне поводження), або в припиненні роботи, якщо замок не стане доступним після вказаного часу (аргумент --timeout), який можна вказати, як нуль секунд, щоб команда не чекала зовсім.
ПРИКЛАДИ
(Уявні команди підкреслено.)
--shared : Накладення спільного замка. Накладання спільного замка не перешкоджає іншим процесам теж накласти спільний замок, але не дасть іншим накласти виключний. І навпаки, накладення виключного замка (стандартне поводження) запобігає накладенню іншими як виключних, так і спільних замків. Типово, спільний замок використовується, якщо команда збирається прочитати замкнені дані, і виключного - якщо команда може здійснити запис туди.
--timeout=n : Завершити роботу, якщо замок неможливо накласти протягом n секунд. У разі повністю не-блокуючого замка, вкажіть --timeout=0. Як тільки замок накладено, ліміт часу скасовується. Команда, яку буде виконано, не є суб'єктом ліміту часу.
flock /etc/passwd _читання-та-запис-до-passwd_
flock --shared /etc/passwd _тільки-читання-з-passwd_
flock --timeout=0 /sys /usr/local/bin/update-hotplug /sys
АВТОР
Адам Дж. Ріхтер
ДИВІТЬСЯ ТАКОЖ
?flock(2)