Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Umgang mit Neustarts beim Ausführen von Befehlen
Wenn Sie verwenden Run Command, ein Tool in AWS Systems Manager, um Skripts auszuführen, die verwaltete Knoten neu starten, empfehlen wir, dass Sie in Ihrem Skript einen Exit-Code angeben. Wenn Sie versuchen, einen Knoten von einem Skript aus mit einem anderen Verfahren neu zu starten, wird der Ausführungsstatus des Skripts möglicherweise nicht korrekt aktualisiert. Dies passiert auch dann, wenn der Neustart der letzte Schritt in Ihrem Skript ist. Für Windows-verwaltete Knoten geben Sie exit 3010
in Ihrem Skript an. Für Linux und macOS verwaltete Knoten, die Sie angebenexit 194
. Der Exit-Code weist den AWS Systems Manager Agenten an (SSM Agent), um den verwalteten Knoten neu zu starten und das Skript nach Abschluss des Neustarts neu zu starten. Bevor Sie den Neustart starten, SSM Agent informiert den Systems Manager Manager-Dienst in der Cloud darüber, dass die Kommunikation während des Serverneustarts unterbrochen wird.
Anmerkung
Das Neustartskript kann nicht Teil eines aws:runDocument
-Plugins sein. Wenn ein Dokument das Neustart-Skript enthält und ein anderes Dokument versucht, dieses Dokument über das aws:runDocument
Plug-in auszuführen, SSM Agent gibt einen Fehler zurück.
Idempotente Skripts erstellen
Bei der Entwicklung von Skripts, die verwaltete Knoten neu starten, machen Sie die Skripts idempotent, damit die Skriptausführung nach dem Neustart an der Stelle fortgesetzt wird, wo sie unterbrochen wurde. Idempotente Skripts verwalten den Status und prüfen, ob die Aktion ausgeführt wurde oder nicht. Dadurch wird verhindert, dass ein Schritt mehrmals ausgeführt wird, wenn er nur einmal ausgeführt werden soll.
Hier finden Sie ein Beispiel für ein idempotentes Skript, das einen verwalteten Knoten mehrfach neu startet.
$name = Get current computer name If ($name –ne $desiredName) { Rename computer exit 3010 } $domain = Get current domain name If ($domain –ne $desiredDomain) { Join domain exit 3010 } If (desired package not installed) { Install package exit 3010 }
Beispiele
Die folgenden Skript-Beispiele verwenden Beendigungscodes für den Neustart von verwalteten Knoten. Das Linux-Beispiel installiert Paket-Updates auf Amazon Linux und startet den Knoten dann neu. Das Tool Windows Server Beispiel installiert den Telnet-Client auf dem Knoten und startet ihn dann neu.