In meinem Linux-Bash-Skript möchte ich auf eines der folgenden Ereignisse warten:
- Das DVD-Laufwerk wurde vom Benutzer geschlossen.
oder
- Eine beschreibbare DVD wurde in das Laufwerk eingelegt.
Leider schließen alle Befehle zum Überprüfen des Mediums im Laufwerk zuerst das Fach und ichwill das nicht tun- es sollteoffen bleibenund warten Sie, bis der Benutzer die DVD einlegt.
Können Sie mir bitte einen Rat geben, wie das geht?
Antwort1
Dies ist sehr plattformspezifisch. Was Sie möglicherweise tun müssen, ist entweder (a) /var/log/messages
nach ASCPI-Ereignissen zu suchen oder (b) je nach PlattformÜberwachen Sie DBUS auf Änderungen. Wenn Sie das Fach öffnen und schließen, werden Ereignisse generiert, die erkannt werden können, aber das kann mehr Ärger machen als es wert ist. Unabhängig davon funktioniert die DBUS-Methode für beliebte Distributionen wie Fedora und Ubuntu sofort.
Viel Glück, ich bin auf jeden Fall gespannt, wie das ausgeht!
EDIT: Gefunden einguter Blog-Beitrag, der dies von Python aus macht,Da DBUS jedoch anwendungsunabhängig konzipiert ist, können Sie einige der Werte von der Seite verwenden.
Antwort2
Ich konnte das Problem folgendermaßen lösen:
udisks --show-info $1 |grep -c "blank: *1"
Es prüft, ob das eingelegte Medium leer ist, ohne das Fach zu schließen.