Выбор дескриптора файла для утилиты flock - PullRequest
0 голосов
/ 08 декабря 2011

На странице справки утилиты flock приведен следующий пример использования:

(
    flock -s 200
    # ... commands executed under lock ...
) 200>/var/lock/mylockfile

Предполагая, что 200 - файловый дескриптор файла блокировки, существует ли вероятность, что во время некоторого запускаэто терпит неудачу, потому что тот же самый файловый дескриптор уже используется другим процессом?Если да, есть ли какие-нибудь хитрости, чтобы гарантировать надежную работу блокировки с flock?

1 Ответ

2 голосов
/ 08 декабря 2011

Неважно, использует ли другой процесс дескриптор файла 200. Подумайте об этом;каждый процесс в системе имеет право иметь файловые дескрипторы 0, 1, 2, указывающие куда-то, и они не все указывают на одно и то же место.Все, что имеет значение, это то, что ваши процессы не будут расстраиваться из-за использования файлового дескриптора 200, и очень немногие процессы заметят, гораздо меньше забот.чтобы убедиться, что все процессы, которые должны использовать файл блокировки, действительно используют его.

...