Se um arquivo que foi excluído ainda estiver aberto por um processo, o espaço não será recuperado até que o processo feche o arquivo (ou seja morto). Se você não conseguir identificar o processo que está mantendo um arquivo aberto, uma reinicialização ajudará, pois fechará todos os processos em execução (e, assim, fechará todos os arquivos abertos).
Outra consideração é a corrupção do sistema de arquivos. Como este é o seu sistema de arquivos raiz, você pode precisar reiniciar e forçar uma verificação do sistema de arquivos ao reiniciar ( shutdown -rF now
). Certifique-se de estar configurado para executar uma varredura + correção não interativa, a menos que tenha acesso KVM ou similar (para que possa interagir durante o processo de inicialização), caso contrário, sua máquina remota aguardará pela entrada local se encontrar erros durante a verificação.
Editar: (conforme a pergunta no comentário)
Se você souber que o processo está mantendo o arquivo aberto, basta reiniciar esse processo específico (seja por meio de scripts de parada / inicialização / reinício de serviço ou por meio da eliminação e reinicialização mais manual) em vez da instância inteira.
Além disso, alguns programas suportam poder redefinir a si mesmos sem reiniciar, o que geralmente inclui o fechamento e a reinicialização de arquivos de log (resolvendo o problema se realmente for devido a um arquivo de log excluído) em resposta ao envio de um sinal SIGHUP (via kill
). A reinicialização de processos dessa maneira é às vezes preferível, pois reduz (muitas vezes a zero) a quantidade de tempo que um processo do servidor é incapaz de aceitar novas conexões. Geralmente é o que acontece quando você executa /etc/init.d/<service> reload
em vez de /etc/init.d/<service> restart
(se eu tiver visto restart
implementado dessa forma, para fazer uma redefinição completa adequada, você precisa fazer /etc/init.d/<service> stop; /etc/init.d/<service> start
).