Erstellen und führen Sie Shutdown-Skripts aus, die unmittelbar vor dem Beenden oder Neustarten einer VM-Instanz Befehle ausführen. Das ist vor allem nützlich, wenn Sie möchten, dass automatische Skripts Instanzen starten oder beenden und andere Instanzen genug Zeit haben sollen, Aufgaben zu erledigen (Export von Logs oder Synchronisation mit anderen Systemen).
Shutdown-Skripts sind besonders nützlich bei VMs in einer verwalteten Instanzgruppe mit Autoscaling. Wenn das Autoscaling eine VM in der Gruppe schließt, wird das Shutdown-Skript ausgeführt, bevor sie tatsächlich geschlossen wird. Das Skript führt alle Aktionen aus, die Sie dafür definiert haben. Das Skript wird während der begrenzten Shutdown-Phase ausgeführt, bevor die VM beendet wird. Ein Shutdown-Skript kann zum Beispiel verarbeitete Daten in Cloud Storage speichern oder Protokolle sichern.
Shutdown-Skripts funktionieren ähnlich wie Startskripts. Ein Großteil der Dokumentation für Startskripts gilt auch für Shutdown-Skripts.
Bei Aufgaben zum Herunterfahren und Neustart führen VMs immer Shutdown-Skripts aus:
- Für Linux-VMs mit dem Nutzer
root
. - Für Windows-VMs mit dem Konto
System
.
Hinweise
- Hier finden Sie Informationen zu Startskripts.
- Was genau ist der Metadatenserver?
-
Richten Sie die Authentifizierung ein, falls Sie dies noch nicht getan haben.
Bei der Authentifizierung wird Ihre Identität für den Zugriff auf Trusted Cloud by S3NS -Dienste und APIs überprüft.
Zum Ausführen von Code oder Beispielen aus einer lokalen Entwicklungsumgebung können Sie sich so bei der Compute Engine authentifizieren:
Select the tab for how you plan to use the samples on this page:
Console
When you use the Trusted Cloud console to access Trusted Cloud by S3NS services and APIs, you don't need to set up authentication.
gcloud
-
Installieren Sie die Google Cloud CLI und melden Sie sich dann mit Ihrer föderierten Identität in der gcloud CLI an. Nach der Anmeldung initialisieren Sie die Google Cloud CLI mit folgendem Befehl:
gcloud init
- Set a default region and zone.
Terraform
Wenn Sie die Terraform-Beispiele auf dieser Seite in einer lokalen Entwicklungsumgebung verwenden möchten, installieren und initialisieren Sie die gcloud CLI und richten Sie dann die Standardanmeldedaten für Anwendungen mit Ihren Nutzeranmeldedaten ein.
Installieren Sie die Google Cloud CLI und melden Sie sich dann mit Ihrer föderierten Identität in der gcloud CLI an.
Create local authentication credentials for your user account:
gcloud auth application-default login
If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
Weitere Informationen finden Sie unter Set up authentication for a local development environment.
REST
Wenn Sie die REST API-Beispiele auf dieser Seite in einer lokalen Entwicklungsumgebung verwenden möchten, nutzen Sie die Anmeldedaten, die Sie der gcloud CLI bereitstellen.
Installieren Sie die Google Cloud CLI und melden Sie sich dann mit Ihrer föderierten Identität in der gcloud CLI an.
Weitere Informationen finden Sie in der Dokumentation zur Trusted Cloud -Authentifizierung unter Für die Verwendung von REST authentifizieren.
Erforderliche Berechtigungen für diese Aufgabe
Zum Ausführen dieser Aufgabe benötigen Sie die folgende Berechtigung:
- Alle Berechtigungen, die für das Erstellen einer Instanz erforderlich sind.
compute.instances.setMetadata
für die Instanz
Spezifikationen
In den folgenden Abschnitten werden die Spezifikationen für Herunterfahrskripts beschrieben.
Beschränkungen
Bei der Verwendung von Shutdown-Skripts gibt es einige Beschränkungen:
- Compute Engine führt Shutdown-Scripts nur nach Best-Effort-Prinzip aus. In einigen wenigen Fällen kann Compute Engine daher nicht dafür sorgen, dass das Shutdown-Script abgeschlossen wird.
- Unter Windows wird die lokale Gruppenrichtlinie verwendet, um das Shutdown-Script zu starten.
- Das Installationspaket konfiguriert die
Computer Configuration/Windows Setting/Scripts (Startup/Shutdown)
-Einstellung der lokalen Gruppenrichtlinie so, dass das Script beim Herunterfahren des Systems gestartet wird.
- Das Installationspaket konfiguriert die
Shutdown-Skripts aufrufen
Shutdown-Skripts werden ausgelöst, wenn die Instanz nach einem der folgenden Ereignisse heruntergefahren wird:
Gehen Sie so vor:
Beenden oder neu starten Sie die Instanz über das Gastbetriebssystem.
Compute Engine beendet eine Instanz im Rahmen eines geplanten Beendigungs- oder Löschvorgangs.
Compute Engine beendet eine Spot-VM oder eine Instanz auf Abruf im Rahmen der vorzeitigen Beendigung.
Ein Shutdown-Skript kann einen beliebigen Dateityp haben. Wenn ein Shutdown-Skript in der Instanz vorhanden ist, führt Compute Engine folgende Schritte aus:
- Kopiert das Skript in eine lokale Datei in der Instanz.
- Legt Berechtigungen für die Datei fest, damit das Skript ausgeführt werden kann.
- Führt die Datei aus, wenn die Instanz heruntergefahren wird.
Sie können zum Beispiel ein Python-Skript statt eines Bash-Skripts verwenden. Aber denken Sie daran, dass Compute Engine das Skript so ausführt, wie es ist. Dabei kommt es nicht auf die Art des Skripts an.
Bei der Ausführung eines Skripts, das nicht in Bash geschrieben ist, müssen Sie eine Shebang-Zeile zu Beginn der Datei hinzufügen, damit das Betriebssystem erkennen kann, welcher Interpreter verwendet werden muss. Bei einem Python-Skript können Sie zum Beispiel die folgende Shebang-Zeile hinzufügen:
#!/usr/bin/python
Ausführungszeit für das Shutdown-Skript
Ihre Shutdown-Skripts werden ausgeführt, wenn Compute Engine den Instanzstatus auf
STOPPING
setzt. Die Ausführung Ihrer Skripts muss abgeschlossen sein, bevor die Instanz vollständig beendet wird. Das ist der Fall, wenn sich ihr Status inTERMINATED
ändert. Die Zeit, die die Instanz benötigt, um den StatusTERMINATED
zu erreichen, hängt vom Instanztyp ab.Wenn Ihre Skripts länger als die Zeit zum Beenden der Instanz dauern, werden sie von Compute Engine erzwungen beendet, was zu Datenverlust oder unvollständigen Aufgaben führen kann. Um dies zu verhindern, beenden Sie die Instanz über das Gastbetriebssystem. Bei diesem Ansatz bleibt der Instanzstatus auf
STOPPING
, bis die Shutdown-Skripts ausgeführt wurden.Lokale Shutdown-Skripts
Ein lokales Shutdown-Skript ist auf Ihrem lokalen Computer ansässig. Sie können es als Datei verwenden oder den Inhalt direkt an Compute Engine weiterleiten.
Mit Shutdown-Skripts können so viele Aktionen wie nötig ausgeführt werden. Wenn Sie die Datei jedoch lokal übertragen, darf Ihr Skript die Längenbeschränkung für Metadatenwerte von 256 KB nicht überschreiten. Um ein Skript zu verwenden, das die Längenbeschränkung überschreitet, sollten Sie Ihre Datei in Cloud Storage speichern. Weitere Informationen finden Sie unter Shutdown-Skript aus Cloud Storage verwenden.
Shutdown-Skriptdatei angeben
Sie können eine lokale Shutdown-Skriptdatei nur über das
gcloud
-Befehlszeilentool übertragen.gcloud
Geben Sie zum Übertragen einer lokalen Shutdown-Skriptdatei das Flag
--metadata-from-file
gefolgt vom Metadaten-Schlüsselpaarshutdown-script=PATH/TO/FILE
an, wobeiPATH/TO/FILE
für den relativen Pfad zum Shutdown-Skript steht. Beispiel:gcloud compute instances create example-instance \ --metadata-from-file shutdown-script=examples/scripts/install.sh
Terraform
Wenn Sie ein Shutdown-Script direkt angeben möchten, verwenden Sie die Ressource
google_compute_instance
mit dem Pfad zum Shutdown-Script in den Metadaten.Shutdown-Skriptinhalte direkt angeben
Alternativ können Sie die Inhalte Ihres Shutdown-Skripts auch direkt eingeben.
Console
In der Trusted Cloud Console können Sie ein Shutdown-Script direkt mit dem Metadatenschlüssel
shutdown-script
angeben:Gehen Sie zur Seite Instanz erstellen.
Geben Sie die VM-Details an
Maximieren Sie den Bereich Erweiterte Optionen.
Maximieren Sie Verwaltung und gehen Sie so vor:
- Klicken Sie im Abschnitt Benutzerdefinierte Metadaten auf Element hinzufügen.
- Geben Sie im Feld Schlüssel
shutdown-script
für den Metadatenschlüssel ein. - Geben Sie im Feld Werte den Inhalt Ihres Shutdown-Skripts ein.
Fahren Sie mit dem VM-Erstellungsprozess fort.
gcloud
Verwenden Sie in der Google Cloud-Befehlszeile das Flag
--metadata
, um den Inhalt Ihres Shutdown-Skripts gefolgt vom Schlüsselpaarshutdown-script=CONTENTS
anzugeben, wobeiCONTENTS
für den Inhalt Ihres Shutdown-Skripts steht.gcloud compute instances create example-instance --metadata shutdown-script="#! /bin/bash > # Shuts down Apache server > /etc/init.d/apache2 stop"
Terraform
Wenn Sie ein Shutdown-Script direkt angeben möchten, verwenden Sie die Ressource
google_compute_instance
mit dem Shutdown-Script in den Metadaten.REST
Beim Erstellen einer Instanz können Sie ein Shutdown-Skript als Teil des Metadatenattributs für Ihre Anfrage angeben. Verwenden Sie
shutdown-script
als Metadatenschlüssel:POST https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instances {... "metadata": { "items": [ { "key": "shutdown-script", "value": "#! /bin/bash\n\n# Shuts down Apache server\n/etc/init.d/apache2 stop" } ] }... }
Shutdown-Skript für Windows-Instanzen angeben
Sie können Shutdown-Skripte auf Windows-Instanzen mit den folgenden Metadatenschlüsseln für Windows ausführen. Wählen Sie einen der folgenden Sonderschlüssel. Jeder Schlüssel sollte zu dem Skript passen, das Sie verwenden wollen.
Sie können mehrere Shutdown-Skripts anhand verschiedener Schlüssel in Ihrer Instanz verwenden. Dabei darf jedoch jeder Schlüssel nur einmal pro virtueller Maschine eingesetzt werden.
Die folgenden Schlüssel können wie oben beschrieben für lokale Shutdown-Skripts verwendet werden.
cmd
-Shutdown-Skriptsbat
-Shutdown-Skriptsps1
-Shutdown-Skriptswindows-shutdown-script-cmd
windows-shutdown-script-bat
windows-shutdown-script-ps1
Shutdown-Skript aus Cloud Storage verwenden
Sie können Shutdown-Skripts in Cloud Storage speichern und von dort aus verwenden. Folgen Sie der Anleitung in der Dokumentation zu Startskripts, aber ersetzen Sie
startup-script-url
durchshutdown-script-url
.Ersetzen Sie bei Windows-Instanzen
windows-startup-script-url
durchwindows-shutdown-script-url
.Shutdown-Skript auf laufende Instanzen anwenden
Folgen Sie der Anleitung in der Dokumentation Startskript für laufende Instanzen anwenden. Ersetzen Sie die Metadatenschlüssel mit einem der folgenden:
shutdown-script
: Geben Sie mit diesem Schlüssel den Inhalt des Shutdown-Skripts direkt an. Mit der Google Cloud CLI können Sie den Pfad für ein Shutdown-Script mit dem Flag--metadata-from-file
und dem Metadatenschlüsselshutdown-script
angeben.shutdown-script-url
: Geben Sie mit diesem Schlüssel die Cloud Storage-URL zur Shutdown-Skriptdatei an.
Ausgabe eines Shutdown-Skripts ansehen
Linux
Sie können die Ausgabe eines Linux-Shutdown-Skripts aufrufen, indem Sie eines der folgenden Dinge tun:
Verbindung zur Instanz herstellen und den folgenden Befehl ausführen:
sudo journalctl -u google-shutdown-scripts.service
Ausgabe über den seriellen Port 1 in der Trusted Cloud Konsole ansehen und auf
google_metadata_script_runner
-Ereignisse prüfen.IAP Desktop von einer Windows-Workstation aus. Weitere Informationen finden Sie im Repository GoogleCloudPlatform/iap-desktop auf GitHub.
Windows
Sehen Sie sich die Ausgabe eines Windows Server-Shutdown-Script an. Verwenden Sie dazu eines der folgenden Dinge und prüfen Sie, ob
GCEMetadataScripts
-Ereignisse vorhanden sind:Serieller Port 1 in der Trusted Cloud -Konsole. Weitere Informationen finden Sie unter Ausgabe des seriellen Ports ansehen.
Anwendungs-Log des Windows-Ereignisanzeige.
IAP Desktop von einer Windows-Workstation aus. Weitere Informationen finden Sie im Repository GoogleCloudPlatform/iap-desktop auf GitHub.
Sofern nicht anders angegeben, sind die Inhalte dieser Seite unter der Creative Commons Attribution 4.0 License und Codebeispiele unter der Apache 2.0 License lizenziert. Weitere Informationen finden Sie in den Websiterichtlinien von Google Developers. Java ist eine eingetragene Marke von Oracle und/oder seinen Partnern.
Zuletzt aktualisiert: 2025-08-19 (UTC).
[[["Leicht verständlich","easyToUnderstand","thumb-up"],["Mein Problem wurde gelöst","solvedMyProblem","thumb-up"],["Sonstiges","otherUp","thumb-up"]],[["Benötigte Informationen nicht gefunden","missingTheInformationINeed","thumb-down"],["Zu umständlich/zu viele Schritte","tooComplicatedTooManySteps","thumb-down"],["Nicht mehr aktuell","outOfDate","thumb-down"],["Problem mit der Übersetzung","translationIssue","thumb-down"],["Problem mit Beispielen/Code","samplesCodeIssue","thumb-down"],["Sonstiges","otherDown","thumb-down"]],["Zuletzt aktualisiert: 2025-08-19 (UTC)."],[[["Shutdown scripts execute commands right before a virtual machine (VM) instance is stopped or restarted, allowing for tasks like exporting logs or syncing with other systems."],["These scripts are particularly useful for VMs in managed instance groups with autoscalers, ensuring actions are performed before a VM is shut down by the autoscaler."],["Shutdown scripts can be local files or their contents directly provided, and for larger scripts, they can be stored in Cloud Storage and referenced via a URL."],["Compute Engine executes shutdown scripts on a best-effort basis, with a limited time window before the instance is fully stopped, during which the script should complete its tasks."],["Shutdown scripts run as the `root` user for Linux VMs and the `System` account for Windows VMs, and can be triggered by stopping, rebooting, or deleting an instance, or by Compute Engine itself."]]],[]] -