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.