англійськафранцузькаіспанська

Ad


Значок OnWorks

with-lock-ex - онлайн у хмарі

Запуск з-lock-ex у постачальника безкоштовного хостингу OnWorks через Ubuntu Online, Fedora Online, онлайн-емулятор Windows або онлайн-емулятор MAC OS

Це команда with-lock-ex, яку можна запустити в постачальнику безкоштовного хостингу OnWorks за допомогою однієї з наших численних безкоштовних робочих станцій, таких як Ubuntu Online, Fedora Online, онлайн-емулятор Windows або онлайн-емулятор MAC OS.

ПРОГРАМА:

ІМ'Я


with-lock-ex - шафка файлів

СИНТАКСИС


з замком-екс -w|-q|-f файл блокування команда аргументи ...

ОПИС


with-lock-ex відкриє та заблокує файл блокування для запису, а потім подає решту
його аргументи до Exec(2); коли цей процес завершиться, fd буде закрито, а файл
автоматично розблокується ядром.

Якщо файл не існує, він створюється з дозволами rw для кожного класу користувача для
яку має умаска w.

ВАРІАНТИ


-w Зачекайте, поки замок стане доступним.

-f Помилка (друк повідомлення на stderr і вихід з 255), якщо блокування неможливо отримати
негайно, тому що це є в іншому процесі.

-q Безмовно нічого не робити (тобто вийти з 0 замість виконання зазначеного процесу), якщо
блокування неможливо отримати негайно, оскільки його є в іншому процесі.

НЯСІЙ ЗАМКИ


Використовуваний протокол блокування не страждає від застарілих замків. Якщо замок не може бути
отримано, один або кілька запущених процесів мають утримувати блокування; якщо потрібен замок
бути звільненим, ці процеси повинні бути знищені.

За жодних обставин не можна запроваджувати роботу cron із «застарілим очищувачем замків» або тому подібне.
У системах, де може існувати велика кількість блокувань, старі файли блокування можуть бути видалені з cron, але
тільки якщо кожне блокування отримано до видалення файлу блокування, наприклад, з

з замком-екс -q файл блокування rm файл блокування

ТУРИКИ


Немає виявлення тупикової ситуації. У системі з кількома блокуваннями має бути ієрархія блокування
бути встановлені таким чином, щоб для кожної пари замків A та B який процес може заблокувати
одночасно A>B or B>A де відношення > є транзитивним і нециклічним.

Потім для будь-яких двох замків X та Y з X>Y набувати заборонено X під час утримання Y.
Натомість придбайте X спочатку, або звільнити Y перед (повторним) придбанням X та Y в тому порядку.

(Існують складніші способи уникнути тупиків, але ієрархія блокування проста
зрозуміти і реалізувати. Якщо це не відповідає вашим потребам, зверніться до літератури.)

БЛОКУВАННЯ ПРОТОКОЛ


Протокол блокування, який використовується з замком-екс полягає в наступному:

Блокування утримується процесом (або групою процесів), який має ексклюзивне блокування fcntl
на першому байте звичайного файлу, який має вказане ім'я. Тримач замка
(і тільки власник блокування) може видалити файл або змінити inode, до якого вказано ім'я
посилається, і як тільки це робиться, він перестає тримати замок.

Будь-який процес може створити файл, якщо він не існує. Немає необхідності, щоб файл
містять будь-які фактичні дані. Дійсно, фактично використовувати файл для зберігання даних сильно
не рекомендується, оскільки це призведе до припинення більшості стратегій надійного оновлення. Використовуйте a
окремий файл блокування.

Можливість отримати блокування відповідає дозволу на запис у файл (і звичайно
дозвіл на створення файлу, якщо він ще не існує). Однак процеси с
тільки дозвіл на читання файлу може запобігти отриманню блокування взагалі; тому
файли блокування зазвичай не повинні бути доступними для читання.

Коли (група) процесів бажає отримати блокування, він повинен відкрити файл (with
O_CREATE) і заблокуйте його за допомогою fcntl(2) F_RWLCK, операція F_SETLK or F_SETLKW. Якщо це
успішно він повинен fstat дескриптор файлу, який він має, і файл за його шляхом. Якщо
пристрій і inode збігаються, тоді блокування було отримано і залишається отриманим до цього
група процесів змінює, на який файл посилається назва, видаляє файл або випускає
блокування fcntl. Якщо це не так, інший процес отримав блокування та видалив файл
файл тим часом; тепер ви повинні закрити свій файловий дескриптор і почати знову. із замком-
ex відповідає цій специфікації.

Зверніть увагу, що стадо(2) є іншим типом блокування fcntl(2). з замком-екс використовує fcntl.

Використовуйте з-lock-ex онлайн за допомогою служб onworks.net


Безкоштовні сервери та робочі станції

Завантажте програми для Windows і Linux

Команди Linux

Ad