GNU/Linux >> Tutoriels Linux >  >> Linux

Dans le fichier de service systemd, comment puis-je dire une fois que l'USB est prêt ?

Je n'ai pas résolu ce problème auparavant, mais il semble que cela pourrait convenir à "l'activation basée sur le chemin".

Au lieu d'avoir une clause "After=" dans votre fichier de service, vous créeriez un .path fichier, comme décrit dans man systemd.path .

Trouvez un fichier approprié sous /dev/bus/usb ou /sys/bus/usb , dont la présence indique que "USB est actif". Alors avoir systemd surveiller le chemin du fichier en utilisant le .path fichier que vous allez créer. Le .path le fichier activerait alors votre .service fichier lorsque le fichier existe.


Ce que je ferais, c'est de créer une unité de périphérique systemd en utilisant la règle an udev. Ex. :créer /etc/udev/rules.d/20-usb-bus.rules avec :

KERNEL=="usb[1-2]", TAG+="systemd"

Au prochain démarrage (ou rechargement des règles udev), vous aurez maintenant votre unité de périphérique système :

# systemctl status dev-bus-usb-001-001.device
● dev-bus-usb-001-001.device - 2.0 root hub
...
# systemctl status dev-bus-usb-002-001.device
● dev-bus-usb-002-001.device - 3.0 root hub
...

Vous pouvez maintenant faire démarrer votre service une fois que le bus USB est prêt en ajoutant :

[Unit]
...
After=dev-bus-usb-001-001.device dev-bus-usb-002-001.device

à votre service systemd.


Linux
  1. Comment créer un service Systemd sous Linux

  2. Comment récupérer des données Xfs après Rm ?

  3. Exécuter le service Systemd après le montage automatique, mais après y avoir accédé ?

  4. Le système refuse SSH et reste bloqué au "démarrage" après l'installation de systemd

  5. Fichier d'unité Systemd - WantedBy et après

Comment exécuter des conteneurs en tant que service Systemd avec Podman

Comment exécuter un script Shell en tant que service Systemd sous Linux

Comment exécuter un script Shell en tant que service SystemD sous Linux

Comment arrêter le service systemd

Comment démarrer un service systemd après la connexion de l'utilisateur et l'arrêter avant la déconnexion de l'utilisateur

rediriger les journaux du service systemd vers un fichier