Como lidar com links quebrados após o deletion.in do arquivo / proc / pid / fd directory?

1

Um processo está criando um grande número de arquivos de log e também o excluindo.

Muitos desses arquivos excluídos estão tendo links quebrados no diretório /proc/pid/fd .

Esses identificadores de arquivo precisam ser fechados por processo? Então, eu não deveria ver os links quebrados. Estou calculando o número de descritores de arquivos usando o comando abaixo:

ls /proc/<pid>/fd | wc -l
    
por Gaurav KS 16.03.2016 / 15:34

1 resposta

0

Se um processo tiver um arquivo aberto e esse arquivo for excluído, o arquivo aparecerá como um link quebrado em /proc/PID/fd . Isso é perfeitamente normal. Um link quebrado não é em si uma indicação de que algo está errado.

Se um programa está mantendo muitos arquivos abertos, mas não fazendo nada com eles, isso pode indicar um erro no programa. Manter um arquivo apagado aberto tem alguns usos, mas para um arquivo de log, não faz sentido algum, então se esses são de fato arquivos de log, provavelmente há um bug no programa. Você terá que entrar em contato com o autor do programa para corrigi-lo (ou faça você mesmo se você tiver a fonte).

Não há como agir no processo via /proc . Você pode anexar um depurador ao processo e fazê-lo fechar os arquivos, mas os resultados não são garantidos. É como remover a escada sob alguém que está subindo em um telhado: é provável que caiam e fiquem gravemente feridos. Se você quiser recuperar o espaço em disco, poderá truncar os arquivos via /proc : o comando shell : >/proc/PID/fd/NUMBER fará o truque. Se o programa continuar gravando no arquivo, isso começará novamente a usar o espaço em disco; uma maneira de evitar isso seria usar um depurador para fazer com que o processo dup2 seja um descritor de arquivos aberto para /dev/null , mas voltamos a resultados que não são garantidos.

    
por 17.03.2016 / 01:32