O que acontece com os arquivos que são excluídos enquanto eles têm um identificador de arquivo aberto para eles?
Eu me pergunto isso desde que descobri que poderia excluir um arquivo de vídeo enquanto ele estava sendo reproduzido no MPlayer e ele ainda seria reproduzido até o fim. De onde ele está puxando os dados? Ainda está vindo do disco rígido? Ele foi copiado para a RAM depois que eu excluí o arquivo?
Se ainda estiver no disco rígido, o que acontecerá se eu encher o sistema de arquivos enquanto o programa estiver executando a leitura do espaço essencialmente não alocado? Se estiver armazenado em buffer na RAM, o que acontece se eu liberar os buffers?
O que acontece se o arquivo estava em um compartilhamento NFS - ele está armazenado no servidor? (Isso não é um risco à segurança - DoS por toneladas de identificadores abertos de arquivos remotos?)
Fazer um, lsof -n |grep '(deleted)'
às vezes, produz resultados interessantes; se estou atualizando pacotes que trocam arquivos de biblioteca compartilhada, a execução de programas que estavam usando essas bibliotecas ainda poderá usá-los como se nada tivesse mudado.
Pergunta bônus: Existe alguma maneira de recuperar os dados dos mortos nessa situação?