Définir le service systemd à exécuter après le assembly de fstab

Je travaille sur un script systemd .service qui est supposé démarrer après qu'un location réseau CIFS est monté via /etc/fstab à /mnt/ au démarrage.

Le script attend qu'un script de dépendance OpenVPN soit lancé en premier, mais je souhaite aussi qu'il attende que le assembly soit terminé.

/etc/systemd/system/my-daemon.service :

 [Unit] Description=Launch My Daemon After=network.target vpn-launch.service Requires=vpn-launch.service 

Je suis désolé si cette question est sortingviale – j'ai cherché en ligne et j'ai essayé d'append systemd.mount à la ligne: After=network.target vpn-launch.service systemd.mount , mais il n'a pas donné les résultats que j'espérais .

un location réseau CIFS est monté via /etc/fstab vers /mnt/ au démarrage.

Non, ce n'est pas le cas. Obtenez cela, et le rest se met en place naturellement.

Le assembly est géré par une unité de assembly systemd (générée) qui s'appellera quelque chose comme mnt-wibble.mount . Vous pouvez voir son nom réel dans la sortie de la command systemctl . Vous pouvez le regarder en détail comme n'importe quelle autre unité avec le systemctl status .

Très simplement, alors: vous devez order votre unité à démarrer après le démarrage de cette unité de assembly.

  Après = network.target vpn-launch.service mnt-wibble.mount 

Plus de lecture

Désolé mais je ne peux pas encore commenter.

Comme l'a dit JdeBP, vous devriez order sur le système de files. Vous pouvez prédire le nom de l'unité de assembly ou, alternativement, vous pouvez utiliser (dans la section d'unité):

RequiresMountsFor = / absolute / path / of / mount

Cette option crée les dependencies vers les unités * .mount appropriées pour rendre le path accessible avant de démarrer le service. Il peut ne pas être sur toutes les versions de systemd, mais je l'ai utilisé dans une machine CentOS 7 pour les 6 derniers mois ou plus.