LINUX.ORG.RU
ФорумAdmin

flock и timeout

 


0

2

Что-то я не понимаю как работает опция -w у flock.

В мане сказано «Fail if the lock cannot be acquired within seconds.»

Берем такой пример:

foo() {
  ( 
    flock 9 && echo "ok" || { echo failed; exit 1; }
    sleep 10 &
  ) 9> lock
}

Примерем к нему опцию -w.

foo() {
  ( 
    flock -w 1 9 && echo "ok" || { echo failed; exit 1; }
    sleep 10 &
  ) 9> lock
}

Тут я ожидаю что повторно запустив foo, скрипт завершится через 1 секунду.

Но вывод такой:

alex@debian:~/bash$ foo
ok
alex@debian:~/bash$ foo
ok

Я как-то не так понял предназначение -w? Для чего в итоге нужна эта опция?


lock ведь на время выполнения скрипта, а он у вас завершается, так как sleep запускается в фоне и скрипт её не ждёт.

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