sous linux il faut ecouter hal via dbus
Sinon sous Gnome, gnome-volume-manager permet peut être de gerer ces evenements encore plus facilement
voilà ce qu'il se passe dans dbus quand on debranche une manette pour brancher une clé USB :
l33thium@Sapphire:~$ dbus-monitor --system
signal sender=org.freedesktop.DBus -> dest=:1.105 path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=NameAcquired
string ":1.105"
signal sender=:1.0 -> dest=(null destination) path=/org/freedesktop/Hal/Manager; interface=org.freedesktop.Hal.Manager; member=DeviceRemoved
string "/org/freedesktop/Hal/devices/usb_device_44f_b300_noserial_if0"
signal sender=:1.0 -> dest=(null destination) path=/org/freedesktop/Hal/Manager; interface=org.freedesktop.Hal.Manager; member=DeviceRemoved
string "/org/freedesktop/Hal/devices/usb_device_44f_b300_noserial_if0_logicaldev_input"
signal sender=:1.0 -> dest=(null destination) path=/org/freedesktop/Hal/Manager; interface=org.freedesktop.Hal.Manager; member=DeviceRemoved
string "/org/freedesktop/Hal/devices/usb_device_44f_b300_noserial"
signal sender=:1.0 -> dest=(null destination) path=/org/freedesktop/Hal/Manager; interface=org.freedesktop.Hal.Manager; member=DeviceRemoved
string "/org/freedesktop/Hal/devices/usb_device_44f_b300_noserial_usbraw"
signal sender=:1.0 -> dest=(null destination) path=/org/freedesktop/Hal/Manager; interface=org.freedesktop.Hal.Manager; member=DeviceAdded
string "/org/freedesktop/Hal/devices/usb_device_930_653d_0DA01460C1C258B8"
signal sender=:1.0 -> dest=(null destination) path=/org/freedesktop/Hal/Manager; interface=org.freedesktop.Hal.Manager; member=DeviceAdded
string "/org/freedesktop/Hal/devices/usb_device_930_653d_0DA01460C1C258B8_if0"
signal sender=:1.0 -> dest=(null destination) path=/org/freedesktop/Hal/devices/usb_device_930_653d_0DA01460C1C258B8_if0; interface=org.freedesktop.Hal.Device; member=PropertyModified
int32 1
array [
struct {
string "info.linux.driver"
boolean false
boolean true
}
]
signal sender=:1.0 -> dest=(null destination) path=/org/freedesktop/Hal/Manager; interface=org.freedesktop.Hal.Manager; member=DeviceAdded
string "/org/freedesktop/Hal/devices/usb_device_930_653d_0DA01460C1C258B8_usbraw"
signal sender=:1.0 -> dest=(null destination) path=/org/freedesktop/Hal/Manager; interface=org.freedesktop.Hal.Manager; member=DeviceAdded
string "/org/freedesktop/Hal/devices/usb_device_930_653d_0DA01460C1C258B8_if0_scsi_host"
signal sender=:1.0 -> dest=(null destination) path=/org/freedesktop/Hal/Manager; interface=org.freedesktop.Hal.Manager; member=DeviceAdded
string "/org/freedesktop/Hal/devices/usb_device_930_653d_0DA01460C1C258B8_if0_scsi_host_scsi_device_lun0"
signal sender=:1.0 -> dest=(null destination) path=/org/freedesktop/Hal/Manager; interface=org.freedesktop.Hal.Manager; member=DeviceAdded
string "/org/freedesktop/Hal/devices/usb_device_930_653d_0DA01460C1C258B8_if0_scsi_host_scsi_device_lun0_scsi_generic"
signal sender=org.freedesktop.DBus -> dest=(null destination) path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=NameOwnerChanged
string ":1.106"
string ""
string ":1.106"
signal sender=:1.0 -> dest=(null destination) path=/org/freedesktop/Hal/Manager; interface=org.freedesktop.Hal.Manager; member=DeviceAdded
string "/org/freedesktop/Hal/devices/storage_serial_0930_USB_Flash_Memory_0DA01460C1C258B8_0_0"
signal sender=:1.0 -> dest=(null destination) path=/org/freedesktop/Hal/Manager; interface=org.freedesktop.Hal.Manager; member=DeviceAdded
string "/org/freedesktop/Hal/devices/volume_uuid_448C_04A1"
signal sender=org.freedesktop.DBus -> dest=(null destination) path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=NameOwnerChanged
string ":1.107"
string ""
string ":1.107"
signal sender=org.freedesktop.DBus -> dest=(null destination) path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=NameOwnerChanged
string ":1.108"
string ""
string ":1.108"
signal sender=:1.0 -> dest=(null destination) path=/org/freedesktop/Hal/devices/volume_uuid_448C_04A1; interface=org.freedesktop.Hal.Device; member=PropertyModified
int32 2
array [
struct {
string "volume.mount_point"
boolean false
boolean false
}
struct {
string "volume.is_mounted"
boolean false
boolean false
}
]
signal sender=org.freedesktop.DBus -> dest=(null destination) path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=NameOwnerChanged
string ":1.108"
string ":1.108"
string ""
signal sender=org.freedesktop.DBus -> dest=(null destination) path=/org/freedesktop/DBus; interface=org.freedesktop.DBus; member=NameOwnerChanged
string ":1.107"
string ":1.107"
string ""
Edité le 30/06/2007 à 16:10