История изменений
Исправление vbr, (текущая версия) :
Если тебе нужно такое поведение (чтобы блокировка не снималась операционной системой по завершению работы программы), тебе нужен lock файл, который создаётся через open(O_EXCL), flock тебе не нужен. Как такое сделать на sh я не знаю, но наверняка трюки есть.
Если тебе нужно поведение, когда блокировка снимается операционной системой, тебе нужен flock и open его не заменит.
Какое поведение нужно - тебе видней. В разных случаях разное. Хотя я бы сказал, что с первым случаем я в своей жизни пока не сталкивался, а со вторым сколько угодно. Как правило требуется, чтобы программа запустилась в одном экземпляре. К примеру если я делаю бэкап базы раз в час и по каким-то причинам он не успел отработать за час, следующий запуск должен подождать завершения предыдущего или отмениться, а не запускаться параллельно. При этом если по какой-то причине запуск упал, следующий запускать всё равно надо, мало ли что там упало.
Исходная версия vbr, :
Если тебе нужно такое поведение (чтобы блокировка не снималась операционной системой по завершению работы программы), тебе нужен lock файл, который создаётся через open(O_EXCL), flock тебе не нужен. Как такое сделать на sh я не знаю, но наверняка трюки есть.
Если тебе нужно поведение, когда блокировка снимается операционной системой, тебе нужен flock и open его не заменит.
Какое поведение нужно - тебе видней. В разных случаях разное. Хотя я бы сказал, что с первым случаем я в своей жизни пока не сталкивался, а со вторым сколько угодно.