Как заставить flock игнорировать блокировку, если она старше x минут? - PullRequest
0 голосов
/ 26 мая 2020

Я использую эту zsh функцию для синхронизации c моих записей в файлы:

sync-append () {
    local file="$1"
    local text="$2"
    local lock_fd
    {
        exec {lock_fd}>> $file
        flock -x "$lock_fd"
        print -r -- "$text" >> $file
    } always {
        exec {lock_fd}>&-
    }
}

Но это может не снять блокировку, если процесс будет принудительно завершен. Есть ли способ заставить flock игнорировать блокировку, если она старше, скажем, 60 минут?

Я также открыт для использования других инструментов, кроме flock. Однако они должны работать как на Ubuntu, так и на macOS.

Обновление: кажется блокировка автоматически закрывается, если процесс завершается.

...