سؤال

لدي سؤال سريع، ولكن لا أستطيع العثور على إجابة.هل من الممكن في نظام التشغيل Linux (أو في Python) معرفة ما إذا كان محرك أقراص USB الخارجي في وضع الخمول؟أحتاج إلى معرفة هذا بالنسبة لنص بايثون الذي أكتبه.أحتاج إلى إعادة تسمية مجلد على محرك أقراص USB خارجي بمجرد عدم كتابة أي شيء عليه.

يحرر:أعلم أن هناك أمر lsof لسرد الملفات المفتوحة."lsof /theDir" يعمل نصفه فقط.يعمل بشكل جيد عندما تكون عملية النسخ إلى USB قيد التشغيل.ولكن عندما تتوقف العملية، لا يظهر lsof شيئًا.لكن نظام التشغيل لا يزال يكتب إلى USB من المخزن المؤقت الخاص به.

هل كانت مفيدة؟

المحلول

يمكنك التحقق مما إذا كانت جميع عمليات الإدخال/الإخراج قد تمت معالجتها من خلال إلقاء نظرة عليها /sys/block/<dev>/stat.العمود التاسع يحتوي على عدد عمليات الإدخال/الإخراج الموجودة حاليًا.يفحص https://www.kernel.org/doc/Documentation/block/stat.txt
بمجرد أن يصبح هذا الرقم صفرًا، يجب أن يكون الجهاز خاملاً.

لفرض كتابة جميع المخازن المؤقتة على الفور، يمكنك تنفيذها sync وانتظر حتى يعود.

ومع ذلك، كن على علم بأن لديك حالة سباق هنا إذا لم تكن تتحكم في الكتابة - بعد أن قررت أن الجهاز خامل، يمكن أن تبدأ عملية أخرى في الكتابة عليه.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top