Como verificar porque uma gravação falhou? [fechadas]

1

Se eu fosse depurar um serviço em uma máquina e eu determinasse que uma gravação estava falhando, como eu poderia verificar por que a gravação falhou?

Eu sei que a chamada do sistema em C retornará -1 e, em seguida, podemos verificar qual constante int errno contém ( EINVAL , etc.). No entanto, se eu não for capaz de verificar isso, como eu iria verificar a causa do erro? O dmesg mostraria um erro no nível de dispositivo de bloco para mim neste caso?

    
por bag 20.11.2017 / 15:18

1 resposta

1

Se a falha de gravação estiver relacionada a um erro de E / S de disco e, portanto, a um disco com falha, é muito provável que você encontre mensagens de erro do kernel na dmesg output.

Mas se não houver tais sintomas, você deve excluir as explicações mais simples primeiro:

  • O processo está autorizado a executar a operação de gravação que está tentando? Em outras palavras, ele tem permissão de escrita para a coisa que está tentando escrever? Se o SELinux estiver em uso, verifique também o log de auditoria no diretório /var/log/audit/ .
  • O sistema de arquivos está cheio?
  • O sistema de arquivos está sem inodes livres (aplicável apenas a sistemas de arquivos sem criação de inodes dinâmicos, como a família ext2 / ext3 / ext4)?
por 20.11.2017 / 17:07