Дождитесь закрытия лотка или вставки пустого компакт-диска в скрипте bash

Дождитесь закрытия лотка или вставки пустого компакт-диска в скрипте bash

В моем скрипте Linux Bash я хочу дождаться одного из следующих событий:

  • Лоток DVD-привода был закрыт пользователем,

или

  • В привод был вставлен записываемый DVD-диск.

К сожалению, все команды для проверки носителя в приводе сначала закрывают лоток, и яне хочу этого делать- должнооставайся открытыми дождитесь, пока пользователь вставит DVD-диск.

Не могли бы вы мне подсказать, как это сделать?

решение1

Это очень специфично для платформы. Вам может понадобиться либо (a) выполнить парсинг /var/log/messagesсобытий ascpi, либо (b) в зависимости от платформы,мониторинг DBUS на предмет изменений. Когда вы открываете и закрываете трей, генерируются события, которые можно обнаружить, но это может принести больше проблем, чем пользы. Независимо от этого, метод DBUS будет работать для популярных дистрибутивов, таких как Fedora и Ubuntu, из коробки.

Удачи! Мне определенно интересно посмотреть, что из этого получится!

EDIT: Нашелхорошая запись в блоге, которая делает это из Python,но поскольку DBUS не зависит от приложений, вы можете использовать некоторые значения со страницы.

решение2

Мне удалось решить проблему с помощью:

udisks --show-info $1 |grep -c "blank: *1"

Он проверяет, является ли вставленный носитель пустым, не закрывая лоток.

Связанный контент