This article describes how to safely shut down a VCF Management Services deployment and power off the underlying virtual machines. The procedure applies to both the Fleet cluster and Instance clusters that host VCF management components.
The vcf_services_runtime_shutdown.sh script automates the full shutdown sequence via the API (port 5480) on the control plane node.
The script triggers a system-wide shutdown workflow that handles internal dependency ordering, prechecks (including snapshot detection), gracefully scales down workloads, and provisions flags to ensure automatic recovery upon boot.
Use this procedure when you need to:
Warning: This procedure stops all VCF management components running on the platform, including Log Management, Realtime Metrics, VCF Operations Lifecycle and Configuration Management, and others. Notify all dependent systems and end-users before proceeding.
Make it executable: chmod +x vcf_services_runtime_shutdown.shcurl: Communicates with the APIs on control plane node.jq: Parses JSON API responses.govc - automatically Powers off VMs via vSphere.Logs all planned actions without executing any shutdown or power-off operations:
./vcf_services_runtime_shutdown.sh --node-ip <NODE_IP> --dry-run
provide the vmware-system-user account when prompted.
Shuts down the system but leaves VMs running. Useful when VMs need to remain accessible, or if you do not have govc installed.
./vcf_services_runtime_shutdown.sh --node-ip <NODE_IP>
provide the vmware-system-user account when prompted.
Note: The script will output the VMs that needs to be stopped from the vCenter server. Locate each VM -> right click -> Power -> Shut Down Guest OS, Confirm the Shut Down action.
Shuts down the system and then powers off VMs automatically.
export VCENTER_USERNAME=administrator@vsphere.local
export VCENTER_PASSWORD=<vcenter-password>
./vcf_services_runtime_shutdown.sh --node-ip <NODE_IP> --poweroff-vms
provide the vmware-system-user account when prompted.
Note: vCenter URL is auto-discovered from the VCF Services component configuration. If needed you could set it manually with:
export GOVC_URL=https://<vcenter-address>
The script writes timestamped log output to stdout. Each phase is marked with a clear separator:
========================================================== [2026-03-06T10:00:00Z] [STEP] Shutting down VCF Services Runtime system ========================================================== [2026-03-06T10:00:01Z] [INFO] System shutdown task created: task-456 [2026-03-06T10:00:17Z] [INFO] Task task-456 status: Succeeded ...
To monitor in real time and save a log file:
./vcf_services_runtime_shutdown.sh --node-ip <NODE_IP> 2>&1 | tee /tmp/vcf_shutdown_$(date +%Y%m%d_%H%M%S).log