Se você não for cuidadoso com a quantidade de log que seu programa gera, você ainda pode preencher um disco apesar de não criar mais de um arquivo de log, causando todos os tipos de problemas:
-
Se for executado como root, você pode literalmente preencher o disco, já que ele ignora as cotas. Alguns sistemas de arquivos também reservam uma certa quantidade mínima de espaço livre para o root, para evitar os problemas abaixo.
-
Se um sistema de arquivos estiver cheio, você não poderá nem criar um arquivo temporário no disco. Se o sistema de arquivos que você preenche também é o local em que parte do seu espaço temporário comum (
/tmp
,/usr/tmp
,/var/tmp
) programas que tentam usar esse espaço provavelmente morrerá se estiver em execução ou falhará se não for. -
Os programas que travam quando isso acontece não soltam núcleos , se você configurou seu sistema para permitir isso. Isso pode dificultar a redução da sensibilidade desses programas a condições de pouco espaço em disco, uma vez que dificulta a descoberta do caminho de código específico que causou a falha do programa.
Você pode executar logrotate
junto com seu programa para reduzir o risco disso.
logrotate
não é 100% infalível. Ele normalmente é executado como um cron job, portanto, se você preencher o disco entre dois cron
runs, o problema não será corrigido até que logrotate
seja executado.