Подтвердить что ты не робот

Будет ли автоматическое освобождение стека на выходе процесса?

В bash script в Linux я использую flock [команда flock, а не системный вызов flock()] для реализации блокировки файлов, тем самым защищая одновременный доступ к совместно используемому ресурсу [который является файлом в tmpfs ].

У меня есть обработчики ловушек для обработки аномального завершения моего script: trap "{ rm -rf $LOCK ; rm -rf $TMPFS_FILE; exit 255; }" SIGINT SIGTERM

где $LOCK - мой файл блокировки, а $TMPFS_FILE - мой общий ресурс.

Мой вопрос: мне нужно явно разблокировать файл? Или Linux делает это для меня при любом завершении программы [как для принудительного завершения, так и для принудительных] сценариев?

4b9b3361

Ответ 1

Из man 1 flock:

-u, --unlock

          Drop  a  lock.   This  is  usually not required, since a lock is
          automatically dropped when the file is closed.  However, it  may
          be  required  in special cases, for example if the enclosed com‐
          mand group may have forked a background process which should not
          be holding the lock.