Pergunta

Tenho uma pergunta rápida, mas não consigo encontrar uma resposta.É possível no Linux (ou em python) ver se um pen drive USB externo está ocioso?Preciso saber disso para um script python que estou escrevendo.Preciso renomear uma pasta em um pen drive USB externo assim que nada estiver sendo gravado nela.

editar:Eu sei que existe o comando lsof para listar arquivos abertos.'lsof /theDir' funciona apenas pela metade.Funciona bem quando o processo de cópia para o USB ainda está em execução.Mas quando o processo para, lsof não mostra nada.Mas o sistema operacional ainda está gravando no USB a partir de seu buffer.

Foi útil?

Solução

Você pode verificar se todas as E/S foram processadas dando uma olhada em /sys/block/<dev>/stat.A nona coluna contém o número de E/S atualmente em execução.Verificar https://www.kernel.org/doc/Documentation/block/stat.txt
Quando este número for zero, o dispositivo deverá estar ocioso.

Para forçar todos os buffers a serem gravados imediatamente, você pode executar sync e espere até que ele retorne.

No entanto, esteja ciente de que você terá uma condição de corrida aqui se não estiver controlando a gravação - depois de decidir que o dispositivo está ocioso, algum outro processo poderá começar a gravar nele.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top