在我的 linux bash 腳本中,我想等待以下事件之一:
- DVD 光碟機托盤被使用者關閉,
或者
- 可寫入 DVD 已插入光碟機。
不幸的是,所有檢查驅動器中媒體的命令首先關閉托盤,然後我不想那樣做- 它應該繼續開放並等待使用者插入 DVD。
你能建議我該怎麼做嗎?
答案1
這是高度特定於平台的。您可能需要做的是 (a) 解析/var/log/messages
ascpi 事件,或 (b) 根據平台,監控 DBUS 的變化。當您打開和關閉托盤時,會產生可以偵測到的事件,但這可能弊大於利。無論如何,DBUS 方法將適用於流行的發行版,例如開箱即用的 Fedora 和 Ubuntu。
祝你好運;我絕對有興趣看看結果如何!
編輯:找到一個很好的部落格文章,透過 Python 實現了這一點,但由於 DBUS 被設計為與應用程式無關,因此您可以使用頁面中的一些值。
答案2
我設法使用以下方法解決了問題:
udisks --show-info $1 |grep -c "blank: *1"
它會檢查插入的介質是否為空白,而無需關閉托盤。