GNU/Linux >> Tutoriales Linux >  >> Linux

En el archivo de servicio systemd, ¿cómo digo después de que el USB esté listo?

No he resuelto esto antes, pero parece que podría ser una buena opción para la "activación basada en rutas".

En lugar de tener una cláusula "Después=" en su archivo de servicio, crearía un .path archivo, como se describe en man systemd.path .

Encuentre un archivo adecuado en /dev/bus/usb o /sys/bus/usb , cuya presencia indica que "USB está activo". Entonces ten systemd monitorear la ruta del archivo usando el .path archivo que creará. El .path entonces activaría su .service archivo cuando el archivo existe.


Lo que haría sería crear una unidad de dispositivo systemd utilizando la regla an udev. Por ejemplo:crear /etc/udev/rules.d/20-usb-bus.rules con:

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

En el próximo arranque (o en la recarga de las reglas de udev), ahora tendrá la unidad de dispositivo de su sistema:

# 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
...

Ahora puede hacer que su servicio comience después de que el bus USB esté listo agregando:

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

a su servicio systemd.


Linux
  1. Cómo crear un servicio Systemd en Linux

  2. ¿Cómo recuperar datos Xfs después de Rm?

  3. ¿Cómo recuperarse después de que Kate se estrella?

  4. Linux:¿cómo volver a conectar un dispositivo USB desconectado lógicamente?

  5. redirigir los registros del servicio systemd al archivo

Administrar el inicio usando systemd

Cómo ejecutar contenedores como servicio Systemd con Podman

Cómo ejecutar Shell Script como servicio Systemd en Linux

Cómo ejecutar Shell Script como servicio SystemD en Linux

Cómo iniciar un servicio systemd después del inicio de sesión del usuario y detenerlo antes de que el usuario cierre la sesión

El sistema rechaza SSH y se atasca en 'arrancar' después de la instalación de systemd