Domanda

Ho una domanda veloce, ma non riesco a trovare una risposta. È possibile in Linux (o in Python) per vedere se una pen drive USB esterna è inattiva? Ho bisogno di sapere questo per uno script Python che sto scrivendo. Ho bisogno di rinominare una cartella su un'unità penna USB esterna non appena non ti scrive nulla.

Modifica: so che c'è il comando LSOF per elencare i file aperti.'lsof / thedir' funziona solo a metà.Funziona bene quando la copia del processo su USB è ancora in esecuzione.Ma quando il processo si ferma, LSOF non mostra nulla.Ma il sistema operativo sta ancora scrivendo all'USB dal suo buffer.

È stato utile?

Soluzione

È possibile controllare se tutto I / O è stato elaborato con uno sguardo a /sys/block/<dev>/stat. La nona colonna contiene il numero di I / OSS attualmente in volo .Controlla https://www.kernel.org/doc/documentation/block/stat.txt
. Una volta che questo numero è zero, il dispositivo dovrebbe essere inattivo.

Per forzare tutti i buffer da scrivere immediatamente è possibile eseguire sync e attendere fino a quando non ritorna.

Tuttavia tappa consapevole di avere una condizione di gara qui se non stai controllando la scrittura - dopo aver deciso che il dispositivo è inattivo qualche altro processo potrebbe iniziare a scriverlo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top