3

ユーザーがLinuxプラットフォームでCDを挿入または削除したときに、イベントを検出または受信するためのクリーンな方法はありますか?

4

3 に答える 3

3

Udevはハードウェアを監視し、イベントをdbusに転送します。必要なのはdbusリスナーだけです。dbus-monitorツールを使用した簡単なチェックは、私のシステムでこれを示しています。

dbus-monitor --system

signal sender=:1.15 -> dest=(null destination) serial=144 path=/org/freedesktop/UDisks; interface=org.freedesktop.UDisks; member=DeviceChanged
   object path "/org/freedesktop/UDisks/devices/sr0"

これはUdisksからのDeviceChangedイベントであり、デバイスパスが含まれています。

したがって、dbusバインディングをサポートするプログラミング言語では、これらの(システムバス)イベントをリッスンできます。

于 2011-02-25T04:00:10.890 に答える
2

従来、これにはHAL(Hardware Abstraction Layer)がありましたが、Webページには

HALはメンテナンスモードです-新しい機能は追加されていません。今後の開発はすべて、udisk、UPower、およびスタックの他の部分に焦点を当てています。詳細については、Software/DeviceKitを参照してください。

およびDeviceKitページリスト

udisks、ストレージデバイスを処理するためのD-Busインターフェイス

したがって、udisksはおそらくあなたが求めているものでなければなりません。

于 2011-02-25T04:05:32.107 に答える
0

私が見つけることができた最良の方法はHalevtでした。Halevtは、HALを直接使用するよりも明らかに高レベルの抽象化です。XMLベースの構成ファイルを使用しますが、これはお好みである場合とそうでない場合があります。構成ファイルのプロパティのドキュメントがやや不足しています。サポートされているすべてのプロパティのリストは次のとおりです。

http://www.marcuscom.com/hal-spec/hal-spec.html

また、Halevtへのリンク:http ://www.nongnu.org/halevt/

于 2011-03-18T21:43:44.873 に答える