문제

빠른 질문이 있는데 답변을 찾을 수 없습니다.Linux(또는 Python)에서 외부 USB 펜 드라이브가 유휴 상태인지 확인하는 것이 가능합니까?내가 작성 중인 Python 스크립트에 대해 이것을 알아야 합니다.외부 USB 펜 드라이브에 아무것도 쓰지 않는 즉시 폴더 이름을 바꿔야 합니다.

편집하다:열린 파일을 나열하는 lsof 명령이 있다는 것을 알고 있습니다.'lsof /theDir'은 절반만 작동합니다.USB로 복사하는 프로세스가 계속 실행 중이면 정상적으로 작동합니다.그러나 프로세스가 중지되면 lsof는 아무것도 표시하지 않습니다.그러나 OS는 여전히 버퍼에서 USB에 쓰고 있습니다.

도움이 되었습니까?

해결책

다음을 보면 모든 I/O가 처리되었는지 확인할 수 있습니다. /sys/block/<dev>/stat.아홉 번째 열에는 다음이 포함됩니다. 현재 실행 중인 I/O 수.확인하다 https://www.kernel.org/doc/Documentation/block/stat.txt
이 숫자가 0이 되면 장치는 유휴 상태여야 합니다.

모든 버퍼를 즉시 작성하려면 다음을 실행할 수 있습니다. sync 그리고 돌아올 때까지 기다리세요.

그럼에도 불구하고 쓰기를 제어하지 않는 경우 여기에 경쟁 조건이 있다는 점에 유의하십시오. 장치가 유휴 상태라고 결정한 후에는 다른 프로세스에서 쓰기를 시작할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top