1 votes

Comment faire en sorte que le script se lance toujours à la connexion du périphérique ?

J'essaie d'exécuter un script lorsqu'un périphérique est connecté. Mes fichiers udev et systemd sont chargés et déclenchés, mais ne lanceront le script qu'une seule fois. Si je déconnecte et reconnecte le périphérique, le script ne se lance plus. J'ai constaté que le rechargement de systemctl à la fin de mon script corrige ce problème (cette méthode ne fonctionne que pour les services systemd 'utilisateur'). Dans la version précédente d'Ubuntu, je pouvais simplement utiliser udev avec systemd, et cela fonctionnait à chaque fois. Cela n'avait pas non plus d'importance si j'utilisais les fichiers de service 'user' ou 'system'. Les deux fonctionnaient, ce qui me permettait également d'exécuter des commandes en tant que root.

Je ne pense pas que mon script soit le problème, car un simple lancement de fichier ou une commande notify-send ne fonctionne qu'après avoir rechargé systemctl (ou si je redémarre).

Comment puis-je utiliser systemd sans avoir à recharger constamment systemctl pour qu'il fonctionne ? Aussi, si possible, comment puis-je récupérer l'utilisation de systemd/system afin que je puisse exécuter scripts en tant que root ?

Edit : J'utilise la version de bureau d'Ubuntu 20.04.

J'ai utilisé la commande systemctl status et il a montré que j'avais un service en échec (ce n'était pas mon fichier de service personnalisé). J'ai désactivé le service et rechargé. Plus d'échec de service, mais mon problème initial persiste.

2voto

Zanna Points 65764

Réponse du PO, retirée de la question :

Correction de : J'ai ajouté ENV{SYSTEMD_USER_WANTS}+="myfile.service" dans mon fichier udev, et cela semble avoir réglé le problème. Merci bac0n pour la suggestion .

Merci également à toutes les autres personnes qui ont donné de leur temps.

Mi udev l'entrée :

ACTION=="add", ATTRS{product}=="DTK-2100", ATTRS{idProduct}=="00cc", ATTRS{idVendor}=="056a", TAG+="systemd"

mon systemd l'entrée :

[Service]
Type=forking
Restart=no
ExecStart=/home/anon/xsetwacom.sh

[Install]
WantedBy=default.target
WantedBy=sys-devices-pci0000:00-0000:00:1a.2-usb5-5\x2d1-5\x2d1:1.0.device

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X