LINUX.ORG.RU

как использовать flock?

 ,


0

5

Напишите пожалуйста как использовать flock в баше. Нужно запустить один и тот же скрипт несколько раз, но в этом скрипте есть чтение и запись из одного и того же файла. Скажите пожалуйста как ограничить доступ к файлу? Заранее спасибо!

Не уверен, что подойдёт, но мысль выскажу: что, если организовать свой недовариант wait() - проверять (хоть тем же lsof'ом) открыт ли файл и вызывать sleep, если да? Есть ведь у bash'a возможность спать в миллисекундах, ЕМНИП.

Nirvandil
()
Ответ на: комментарий от lenalena919

а что именно непонятно в мане?

The second form is conveninent inside shell scripts, and is usually used the following manner:

( 

  flock -s 200 

  # ... commands executed under lock ... 
) 200>/var/lock/mylockfile


OPTIONS

-s, --shared
Obtain a shared lock, sometimes called a read lock.

zolden ★★★★★
()
Ответ на: комментарий от zolden

сделал вот такой код для теста

d=1
while ((d>0))
do


( 
flock -s 200 
head -n1 ttt;
sed -i '1d' ttt
echo -$1
) 200>/var/lock/mylockfile


d=$(stat -c%s ttt)
done

Что сделал не так?

lenalena919
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.