Cómo configurar un servicio para que se inicie después de que autofs haya comenzado con systemd

9

Tengo que configurar un servidor de licencias en una máquina RHEL7 con systemd. El servidor de licencias debe iniciarse al iniciar y cargar un archivo de licencia desde un disco compartido en la red. Así que necesito esperar a que la red se inicie y que los autofs terminen de montar discos NFS. Tengo este archivo de servicio:

[Unit]
Description=Flexnet license server
Wants=network.target network-online.target autofs.service
After=network.target network-online.target autofs.service

[Service]
Type=forking
User=licenseuser
Group=devusers
ExecStart=/soft/flexera/glnxa64/lmgrd -c /soft/licenses/license.dat -L /home/licenseuser/license.log

# Give a reasonable amount of time for the server to start up/shut down
TimeoutSec=300

[Install]
WantedBy=multi-user.target

El servicio se inicia después de que se haya iniciado autofs pero antes de que autofs haya montado todos los discos, por lo que no se puede iniciar el servidor de licencias.

RegedUser00x
fuente

Respuestas:

9

Debe agregar lo siguiente

[Unit]
RequiresMountsFor=<path required>

Esto asegurará que la ruta sea accesible antes de iniciar el servicio y también la montará si aún no lo está (a menos que no haya especificado automáticamente). Verifique con sus páginas de manual (man systemd.unit) si la opción es compatible con su sistema, ya que la mía es bastante avanzada.

miguelbernadi
fuente
1
lo siento por necro, pero ¿qué pasa si este es un montaje NFS y nfs aún no ha comenzado? Editar: respondiendo a mi propia pregunta, solo revisé la página de manual RequiereMountsFor , por lo que parece funcionar también con montajes nfs siempre que estén bien definidos en / etc / fstab sin 'noauto'
Normadize