Je veux exécuter un script lorsque je branche un périphérique sur ma machine Linux. Par exemple, exécutez xinput
sur la souris ou un script de sauvegarde sur un certain lecteur.
J'ai vu beaucoup d'articles à ce sujet, plus récemment ici et ici . Mais je n'arrive pas à le faire fonctionner.
Voici quelques exemples simples essayant d'obtenir au moins une sorte de réponse.
/etc/udev/rules.d/test.rules
#KERNEL=="sd*", ATTRS{vendor}=="*", ATTRS{model}=="*", ATTRS{serial}=="*", RUN+="/usr/local/bin/test.sh"
#KERNEL=="sd*", ACTION=="add", "SUBSYSTEM=="usb", ATTRS{model}=="My Book 1140 ", ATTRS{serial}=="0841752394756103457194857249", RUN+="/usr/local/bin/test.sh"
#ACTION=="add", "SUBSYSTEM=="usb", RUN+="/usr/local/bin/test.sh"
#KERNEL=="sd*", ACTION=={add}, RUN+="/usr/local/bin/test.sh"
KERNEL=="sd*", RUN+="/usr/local/bin/test.sh"
KERNEL=="*", RUN+="/usr/local/bin/test.sh"
/usr/local/bin/test.sh
#!/usr/bin/env bash
echo touched >> /var/log/test.log
if [ "${ACTION}" = "add" ] && [ -f "${DEVICE}" ]
then
echo ${DEVICE} >> /var/log/test.log
fi
Le dossier des règles est surveillé par inotify
et doit être actif immédiatement. Je continue de rebrancher mon clavier, ma souris, ma tablette, mon memorystick et ma clé USB, mais rien. Aucun fichier journal touché.
Maintenant, quelle serait la façon la plus simple de savoir au moins que quelque chose fonctionne? Il est plus facile de travailler à partir de quelque chose qui fonctionne que de quelque chose qui ne fonctionne pas.
3.5.0-23-generic
.
udevadm trigger
ou branché un appareil pour appliquer la nouvelle règle?