Ich habe ein Tutorial in bash gelesen, in dem gesagt wurde, dass die Maschine neu gestartet werden soll, es gab keine Option, einen Dienst direkt neu zu starten, es war eine Frage des Neustarts der Maschine, und danach gab es weitere Befehle, die noch ausgeführt werden mussten Bei der Bereitstellung ausführen.
Gibt es also eine Möglichkeit, eine Box bei der Bereitstellung neu zu starten und dann dort weiterzumachen, wo Sie aufgehört haben?
Soweit ich weiß, können Sie nicht ein einziges Skript / Satz von Befehlen haben, die dort weitermachen würden, wo es aufgehört hat, wenn es versucht, das Betriebssystem neu zu starten, wie zum Beispiel:
%Vor%In diesem Beispiel würde der zweite Echo-Aufruf nicht ausgeführt.
Sie könnten das Skript / die Befehle aufteilen und ein Plugin wie vagrant reload .
Ein Beispielschnipsel einer Vagrant-Datei, um ihre mögliche Verwendung hervorzuheben:
%Vor%Ich habe das noch nie gemacht, aber wenn ich müsste, würde ich das Skript in zwei Teile aufteilen, einen vor dem Neustart, der den Neustart-Befehl enthält, und einen weiteren, der nach der Installation installiert wird.
Der erste würde auch eine Sperrdatei erstellen.
Das gesamte Skript würde das erste Skript ausführen, wenn die Sperrdatei nicht existiert, oder das zweite ausführen, wenn die Datei existiert. Dieses allgemeine Skript wäre für den Start eingerichtet.
Ein Trick, den Sie anwenden können, besteht darin, ein Neustart-Signal zu senden und den Rest der Bereitstellungsarbeit als ein Skript zu speichern, das beim Booten ausgeführt wird:
%Vor%Dies wurde getestet, um auf debian 9 zu funktionieren, also müssen Sie möglicherweise Dienste aktivieren oder einen anderen Weg finden, um Ihren Code beim nächsten Start neu starten zu lassen, wenn Sie etwas anderes ausführen.
Leider kann man das nicht einfach machen:
%Vor%Tags und Links bash vagrant vagrant-provision