В моем скрипте 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"
Он проверяет, является ли вставленный носитель пустым, не закрывая лоток.