Warten Sie, bis das Fach geschlossen oder eine leere CD in das Bash-Skript eingelegt wurde

Warten Sie, bis das Fach geschlossen oder eine leere CD in das Bash-Skript eingelegt wurde

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/messagesnach 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.

verwandte Informationen