Salut,
est-ce que t’es pas en train de réinventer les règles qui existe dans le paquet udev?
Je t’avoue que je sais pas trop, ça dépasse de loin mes connaissances/compétences actuelles et du coup je suis un peu perdu.
Ce que j’ai mis est à 100% inspiré de ce que j’ai vu sur les forums. Je me dit que si ils font comme ça c’est que c’est un bon moyen, après si tu me dit que non bah… ptètre pas alors ^^
J’ai regardé le contenu des fichiers que tu cite. Si je comprend bien ma condition se serait celle la :
usb:v*p*d*dc08*
ID_USB_CLASS_FROM_DATABASE=Mass Storage
En recherchant je suis tombé sur quelques liens parlant de libudev et nottament celui la : libudevusb
Storage device is matched with the following criteria:
current device SUBSYSTEM is “scsi” and DEVTYPE is “scsi_device”
child device exists where SUBSYSTEM is “block”
child device exists where SUBSYSTEM is “scsi_disk”
parent device exists where SUBSYSTEM is “usb” and DEVTYPE is “usb_device”
J’imagine que c’est les règles qui déterminent si le device est un support de stockage usb
Du coup la condition usb:vpddc08 correspondrait à ces 4 conditions?
Edit : J’ai fait quelques tests parce qu’au bout d’un moment faut bien essayer.
Du coup j’ai créé un fichier de règles /etc/udev/rules.d/85-usb-detect.rules contenant bêtement
ACTION=="add", RUN+="/home/julien/Scripts/mount-sshfs.sh %M %m"
Du coup à chaque fois que le noyau envoit l’évenement add à udev, mon script devrait être éxécuté.
Ce script écrit tout simplement le majeur et le mineur dans un fichier texte.
J’ai bien rechargé la configuration avec
udevadm control --reload
systemctl daemon-reload
mais pourtant lorsque je branche un device usb il ne se passe rien.
En traquant avec udevadm monitor je voit pourtant les évènements noyau envoyés à udev
$ udevadm monitor
monitor will print the received events for:
UDEV - the event which udev sends out after rule processing
KERNEL - the kernel uevent
KERNEL[359.902016] add /devices/pci0000:00/0000:00:1d.7/usb3/3-8 (usb)
KERNEL[359.902104] add /devices/pci0000:00/0000:00:1d.7/usb3/3-8/3-8:1.0 (usb)
KERNEL[359.902226] add /devices/pci0000:00/0000:00:1d.7/usb3/3-8/3-8:1.0/host4 (scsi)
KERNEL[359.902262] add /devices/pci0000:00/0000:00:1d.7/usb3/3-8/3-8:1.0/host4/scsi_host/host4 (scsi_host)
UDEV [359.908369] add /devices/pci0000:00/0000:00:1d.7/usb3/3-8 (usb)
UDEV [359.912170] add /devices/pci0000:00/0000:00:1d.7/usb3/3-8/3-8:1.0 (usb)
UDEV [359.914201] add /devices/pci0000:00/0000:00:1d.7/usb3/3-8/3-8:1.0/host4 (scsi)
UDEV [359.914238] add /devices/pci0000:00/0000:00:1d.7/usb3/3-8/3-8:1.0/host4/scsi_host/host4 (scsi_host)
KERNEL[361.107495] add /devices/pci0000:00/0000:00:1d.7/usb3/3-8/3-8:1.0/host4/target4:0:0 (scsi)
KERNEL[361.107528] add /devices/pci0000:00/0000:00:1d.7/usb3/3-8/3-8:1.0/host4/target4:0:0/4:0:0:0 (scsi)
KERNEL[361.107541] add /devices/pci0000:00/0000:00:1d.7/usb3/3-8/3-8:1.0/host4/target4:0:0/4:0:0:0/scsi_disk/4:0:0:0 (scsi_disk)
KERNEL[361.107551] add /devices/pci0000:00/0000:00:1d.7/usb3/3-8/3-8:1.0/host4/target4:0:0/4:0:0:0/scsi_device/4:0:0:0 (scsi_device)
KERNEL[361.107568] add /devices/pci0000:00/0000:00:1d.7/usb3/3-8/3-8:1.0/host4/target4:0:0/4:0:0:0/scsi_generic/sg1 (scsi_generic)
KERNEL[361.107588] add /devices/pci0000:00/0000:00:1d.7/usb3/3-8/3-8:1.0/host4/target4:0:0/4:0:0:0/bsg/4:0:0:0 (bsg)
UDEV [361.108701] add /devices/pci0000:00/0000:00:1d.7/usb3/3-8/3-8:1.0/host4/target4:0:0 (scsi)
UDEV [361.109594] add /devices/pci0000:00/0000:00:1d.7/usb3/3-8/3-8:1.0/host4/target4:0:0/4:0:0:0 (scsi)
UDEV [361.110310] add /devices/pci0000:00/0000:00:1d.7/usb3/3-8/3-8:1.0/host4/target4:0:0/4:0:0:0/scsi_disk/4:0:0:0 (scsi_disk)
KERNEL[361.111094] add /devices/virtual/bdi/8:16 (bdi)
UDEV [361.111336] add /devices/virtual/bdi/8:16 (bdi)
UDEV [361.111490] add /devices/pci0000:00/0000:00:1d.7/usb3/3-8/3-8:1.0/host4/target4:0:0/4:0:0:0/scsi_device/4:0:0:0 (scsi_device)
UDEV [361.111907] add /devices/pci0000:00/0000:00:1d.7/usb3/3-8/3-8:1.0/host4/target4:0:0/4:0:0:0/bsg/4:0:0:0 (bsg)
UDEV [361.112591] add /devices/pci0000:00/0000:00:1d.7/usb3/3-8/3-8:1.0/host4/target4:0:0/4:0:0:0/scsi_generic/sg1 (scsi_generic)
KERNEL[361.118056] add /devices/pci0000:00/0000:00:1d.7/usb3/3-8/3-8:1.0/host4/target4:0:0/4:0:0:0/block/sdb (block)
KERNEL[361.118097] add /devices/pci0000:00/0000:00:1d.7/usb3/3-8/3-8:1.0/host4/target4:0:0/4:0:0:0/block/sdb/sdb1 (block)
UDEV [361.201403] add /devices/pci0000:00/0000:00:1d.7/usb3/3-8/3-8:1.0/host4/target4:0:0/4:0:0:0/block/sdb (block)
UDEV [361.273539] add /devices/pci0000:00/0000:00:1d.7/usb3/3-8/3-8:1.0/host4/target4:0:0/4:0:0:0/block/sdb/sdb1 (block)
J’en conclus que soit l’évènement n’est pas traité par udev soit ma règle est fausse, pourtant je voit pas comment je pourrai faire plus simple.
Je précise que mon script est bien exécutable.
Une idée de se qui pourrait planter?
Edit 2 : Bon finalement ça vient du fait que je fesait ça dans mon dossier personnel, bizarrement, quand j’appelle un script de mon dossier personnel ça marche pas mais si je met le script dans /usr/bin il n’y a plus de soucis.