В Linux (почти) нет обязательных блокировок файлов (точнее, раньше в ядре была обязательная функция блокировки , но она устарела, и вы действительноследует избегать его использования).Блокировка файла происходит с flock (2) или lockf (3) и имеет рекомендацию и должна быть явная (например, с flock (1) , или какая-то программа, вызывающая flock
или lockf
).
Таким образом, каждая блокировка, связанная с файлами, является практически соглашением между всем программным обеспечением, использующим этоfile (и mv (1) или перенаправление вашей оболочкой не использует блокировку файлов).
Помните, что файл в Linux в основном является i-node (см. inode (7) ), который может иметь ноль, один или несколько путей к файлам (см. path_resolution (7) и знать о link (2) , rename (2) , unlink (2) ) и используется через некоторый дескриптор файла .Прочитайте ALP (и, возможно, Операционные системы: три простых компонента ), чтобы узнать больше.
В сценарииваш вопрос (а задействованные i-узлы и файловые дескрипторы независимы).
Рассмотрите возможность использования logrotate (8) .
Некоторые программы предоставляют способперезагрузите их конфигурацию и заново откройте файлы журнала.Вы должны прочитать документацию вашего nginx .