Salut les amis,
Pour introduire mon sujet, comme énoncé succintement dans le titre je cherche à configurer un service sous Systemd, dont le fichier se trouve dans un sous-volume BTRFS monté automatiquement au démarrage sur le chemin /srv.
En fait j’ai découvert il y a peu de temps, étant entrain de regarder du côté de Docker, que Linux fournissait des outils de containerisation également, dont LXC et même sous Systemd directement avec “systemd-nspawn”.
Comme c’est donc natif avec systemd je me suis penché sur ce dernier pour bidouiller, apprendre son fonctionnement etc… L’objectif est de pouvoir jouer plus tard avec des machines virtuelles que l’on pourra lancer, bidouiller, détruire à gogo, le tout sans installer de paquets supplémentaires, bref…
Je dois dire que systemd-nspawn fonctionne très bien, il n’y a peut-être pas encore pléthore de commandes à l’instar de celles dispo sous Docker et/ou LXC, mais ça avance pas mal.
Petite précision je suis sous Sid pour ceux qui ne le savent pas déjà, donc pour ceux qui seraient curieux comme moi, les commandes “systemd-nspawn, systemd-machined, machinectl, …” ont été regroupées dans un paquet à part nommé “systemd-container” avec des commandes et fonctionnalités supplémentaires, une connexion internet améliorée pour les machines virtuelles (qq soucis avec la version dans Jessie)…
Bon pour revenir à nos moutons, j’ai donc construit une VM avec systemd-nspawn, plus exactement un serveur DNS Bind9 (debootstrap d’une Debian Jessie et install/config de Bind9 à l’intérieur), dans un dossier nommé “bind9” dans le chemin suivant :
# /srv/bind9
J’ai également crée un dossier “/srv/systemd/system” dans lequel j’ai mis mon fichier “nspawn@bind9.service” (à l’instar des chemins habituels pour systemd qui sont “/etc/systemd/system” et “/lib/systemd/system”)
J’ai donc configuré ce service, mais mon problème est que le chemin parent “/srv” se trouve dans un sous-volume BTRFS qui est monté au démarrage via fstab. Et évidemment le service n’est pas lancé au démarrage du système, je dois le lancer à la mano une fois connecté à mon compte sur l’hôte…
Donc pour préciser ma question, et vu mes connaissances tout de même limitées avec systemd, est-ce que quelqu’un aurait une idée sur le “.service”, “.target”, ou autre option que je devrais rajouter dans mon fichier “nspawn@bind9.service” à l’option :
After=
pour que mon service démarre bien au lancement ou redémarrage du système hôte?
Je m’excuse si j’ai pas été clair ou suffisamment concis en ce moment je fais 36000 choses et la fatigue s’en ressent…