Beginnen Sie mit einem auf Vagabunden montierten (Emporkömmling) Äquivalent in systemd

7

Ich habe eine Vagrant-Box mit Ubuntu 15.04, die ein Upstart-Skript enthält, das einen Dienst startet, wenn das System startet. Es hat eine start on vagrant-mountedZeilengruppe, da der Dienst erfordert, dass das Verzeichnis / vagrant von Vagrant bereitgestellt wird.

Ich migriere dieses Skript jetzt nach systemd (was mir völlig neu ist) und kann das Skript während des Startvorgangs nicht erfolgreich ausführen, da / vagrant beim Ausführen des Skripts nicht bereitgestellt wird. After=vagrant-mountedfunktioniert nicht, könnte aber helfen zu zeigen, was ich versuche zu tun.

Wie führe ich eine systemd-Einheit aus, wenn während des Startvorgangs ein Vagrant-Verzeichnis bereitgestellt wurde?

Hinweis systemctl start my.service nicht startet den Dienst erfolgreich, und der Service ist systemctl enabled‚ed.

TJ Mazeika
quelle

Antworten:

3

/vagrantNach meinem Verständnis der Vagrant-Startsequenz wird Vagrant nach Abschluss der Startsequenz mithilfe von SSH (und allen anderen von Ihnen definierten freigegebenen Dateisystemen) bereitgestellt.

Daher möchten Sie wahrscheinlich systemctl start my.servicein einem bereitgestellten Provisioner ausgeführt run: alwayswerden, sodass der Provisioner bei jedem Start ausgeführt wird, nicht nur beim erstmaligen Erstellen der VM.

Dies wäre nicht erforderlich, wenn systemd erkennen könnte, wann ein Dateisystem bereitgestellt wurde, aber zu meiner Überraschung kann ich keinen Hinweis darauf finden, dass systemd solche Funktionen unterstützt.

womble
quelle
Ich bin selbst zu dem gleichen Schluss gekommen; Wenn das Skript einfach genug ist, wurde empfohlen, es einfach in ein eigenes Bash-Skript zu schreiben und es run: 'always'wie gesagt auszuführen . Dies funktioniert natürlich, wenn keine systemspezifische Funktionalität benötigt wird.
TJ Mazeika