Aunque ambas respuestas son correctas, quiero agregar mis dos centavos a la discusión, porque cuando la busqué me faltaban algunas instrucciones y ejemplos de cómo proceder.
- Agregue el sistema de archivos a
/etc/fstab
- Tipo
mount -a
que monta todos los sistemas de archivos mencionados en fstab
- Busque la unidad systemd que se ha generado con:
systemctl list-units | grep '/path/to/mount' | awk '{ print $1 }'
(debería devolver algo que termine con .mount
)
- Agregue la unidad de montaje encontrada a la
After=
declaración en el *.service
archivo
Aquí hay un ejemplo de cómo iniciar el my-daemon
servicio en el arranque, pero una vez que la red está lista, se monta un recurso compartido CIFS /mnt/cifs
y vpn-launch
se inicia el servicio:
/ etc / fstab
//servername/sharename /mnt/cifs cifs defaults,some,other,options 0 0
Nota: es posible que desee agregar nofail
a sus opciones de fstab (por ejemplo, cuando usa una unidad externa). De lo contrario, su máquina no arrancará si el dispositivo no está conectado. Ver el artículo fstab de ArchWiki
/etc/systemd/system/my-daemon.service
[Unit]
Description=Launch My Daemon
Requires=vpn-launch.service mnt-cifs.mount
After=network.target vpn-launch.service mnt-cifs.mount
[Service]
ExecStart=/path/to/my-daemon
[Install]
WantedBy=multi-user.target
No olvide habilitar el servicio de modo que se inicie en el arranque: systemctl enable my-daemon
Tenga en cuenta que esto también funciona para otros sistemas de archivos (NFS, HDD, etc.).
Como ya se mencionó, ambas respuestas son correctas y animo a todos a leerlas, pero para mí un par de ejemplos me habrían ahorrado algo de tiempo.
Actualización (2019-06-25):
- Se agregó una nota sobre las opciones de fstab para evitar el bloqueo de arranque cuando se utilizan unidades externas
- agregado
mnt-cifs.mount
a la Requires=
lista, lo que hace que my-daemon.service
no se inicie cuando el montaje cifs no se montó correctamente
systemd-remount-fs
a tuAfter
lista?