Lendo tail
sources, parece que não falha ao ler o arquivo renomeado, mas falha ao monitorar o status do arquivo.
Mais precisamente, tail
parece se comportar dessa maneira (simplificada):
- lê o arquivo até o final;
- configure um relógio
inotify
para ser notado quando algo acontecer ao arquivo; - quando um novo conteúdo é anexado ao arquivo, leia novamente até o final;
- retorne ao passo 2.
Quando você move o arquivo, inotify
informa tail
, que por sua vez decide descartar o arquivo da lista de arquivos monitorados. Parece ser intencional, embora não esteja claro para mim por que isso é assim (e eu esperaria que ele continuasse monitorando o arquivo após renomear). As linhas relevantes parecem ser estes .
Portanto, o problema não é com o sistema operacional Linux subjacente, mas com a maneira como tail
manipula a renomeação de arquivos.