Eu estou em um cubie board (um computador de placa única, como um Raspberry Pi) rodando um derivado Debian chamado cubian
Linux Cubian 3.4.79-sun4i #1 PREEMPT Wed Feb 25 08:50:31 UTC 2015 armv7l GNU/Linux
As unidades USB são montadas automaticamente em um subdiretório de / media via udevil
.
Estou tentando gerenciar isso como um quiosque (o usuário não tem acesso a um sistema de janelas, etc.), portanto, preciso responder às situações de maneira programática. Recentemente, durante o teste, meu código emitiu um erro indicando que havia mais de um diretório em / media. Eu ssh'd em, e, de fato, havia dois diretórios lá. Eu disse a mim mesmo "sim, mas um é apenas o restante obsoleto de uma unidade não-corretamente desmontada, então o diretório estará vazio [eu vi esse caso antes], e eu só preciso adicionar código para verificar se" .
Para minha surpresa, o diretório não estava vazio, e não só consegui uma listagem, como também consegui abrir e ler o conteúdo de um arquivo. Esta questão descreve uma situação semelhante.
Suponho que isso seja algum tipo de cache que estou acessando. Existe uma maneira de detectar programaticamente essa situação?
Não estou preocupado em limpar os diretórios tanto quanto sei qual deles realmente corresponde a uma unidade montada fisicamente.
Além disso, infelizmente, eu não sei como reproduzir isso - eu tentei matar o udevil e montá-lo manualmente com mount
e depois puxá-lo para fora, e os arquivos desapareceram.
Se houvesse uma maneira confiável de reproduzi-lo, eu poderia testar algumas coisas (como ver se um comando touch
falha, mas não trava, talvez?), então isso também seria uma resposta útil.