Pregunta

Tengo una pregunta rápida, pero no puedo encontrar una respuesta.Es posible que en linux (o en python) para ver si un externo usb pen drive está al ralentí?Necesito saber esto para una secuencia de comandos de python que estoy escribiendo.Necesito cambiar el nombre de una carpeta en un externo usb pen drive tan pronto como nada es la escritura.

editar:Sé que hay lsof comando a la lista de los archivos abiertos.'lsof /theDir" sólo funciona la mitad.Funciona bien cuando el proceso de copiar en el USB todavía se está ejecutando.Pero cuando el proceso se detiene, lsof no muestra nada.Pero el sistema operativo está todavía escrito a la USB de su búfer.

¿Fue útil?

Solución

Usted puede comprobar si todos los I/O ha sido procesado por tener un vistazo a /sys/block/<dev>/stat.La novena columna contiene el número de I/Os en la actualidad en vuelo.Verificación https://www.kernel.org/doc/Documentation/block/stat.txt
Una vez que este numner es cero, el dispositivo debe estar inactivo.

A fuerza de todos los búferes para ser escrita inmediatamente usted podría ejecutar sync y esperar hasta que se devuelve.

Sin embargo, ser conscientes de que usted tiene una condición de carrera aquí si usted no controla la escritura - después de que usted decidió que el dispositivo está inactivo algún otro proceso podría empezar a escribir en él.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top