如何檢測閃存驅動器何時插入?我正在使用一個純粹的Debian安裝,沒有任何GUI,並且希望在我的Python腳本中出現新的閃存驅動器時收到通知...我知道D-BUS分發這些信息,但我不想使用D-BUS。有沒有更多的信息訪問這些信息?不應該在/ proc或/ sys下可用嗎?我如何「連接」到該源?如何檢測在Linux下插入閃存驅動器的時間?
再見 福斯塔夫
如何檢測閃存驅動器何時插入?我正在使用一個純粹的Debian安裝,沒有任何GUI,並且希望在我的Python腳本中出現新的閃存驅動器時收到通知...我知道D-BUS分發這些信息,但我不想使用D-BUS。有沒有更多的信息訪問這些信息?不應該在/ proc或/ sys下可用嗎?我如何「連接」到該源?如何檢測在Linux下插入閃存驅動器的時間?
再見 福斯塔夫
您可以通過Netlink插座讀uevents from kernel並查找事件,其中"ACTION"
是"add"
(你也可以看,如果來自設備的分區中安裝或卸載,或者如果設備被移除)。這與人們可以在用戶空間中獲得的事件來源接近。據我所知,這是udev
如何檢測插入的可移動媒體。
但可能using D-Bus/HAL API via Python bingings會更容易(沒有uevents數據解析等)。不知道你爲什麼反對這一點。既然你使用Python,我懷疑資源並不是真正的問題。
的/ proc /分區顯示了所有已知的內核的分區。
所有市長Linux發行版都包含udev,它允許您在硬件事件上編寫自定義腳本。
當USB設備插入系統日誌時,將與此有關的消息寫入/ var/log/messages。 「dmesg」命令顯示此日誌。您可以在日誌末尾查看設備連接到哪個通道,通常是/ dev/sd(letter)(數字),具體取決於插入系統的分區和串行磁盤的數量。
我這樣做是使用zenity在腳本和udev與規則上與RHEL6:
KERNEL == 「SD [BD]」,DRIVERS == 「USB」,ACTION == 「添加」,RUN + = 「/ path/to/script」
謝謝!我嘗試了你的或者PeterMmm的方法,即時通訊還不確定是否要使用udev ...嗯,我使用python在我的機器上編寫原型,它沒有任何資源問題,但目標是嵌入式設備,想要安裝所有的D-Bus/HAL的東西... – falstaff 2009-10-05 08:58:06