Будет ли автоматическое освобождение стека на выходе процесса?
В bash script в Linux я использую flock [команда flock, а не системный вызов flock()] для реализации блокировки файлов, тем самым защищая одновременный доступ к совместно используемому ресурсу [который является файлом в tmpfs ].
У меня есть обработчики ловушек для обработки аномального завершения моего script:
trap "{ rm -rf $LOCK ; rm -rf $TMPFS_FILE; exit 255; }" SIGINT SIGTERM
где $LOCK - мой файл блокировки, а $TMPFS_FILE - мой общий ресурс.
Мой вопрос: мне нужно явно разблокировать файл? Или Linux делает это для меня при любом завершении программы [как для принудительного завершения, так и для принудительных] сценариев?
Ответы
Ответ 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.