Script: Shutting Down All Xen VMs on a Server

Shutting down servers is a common operations for managing a cluster. However, if this server is configured to a Xen Dom0 and has Xen VMs (DomUs), the VMs should be shutdown first to avoid data lost on these VMs.

xm supports a -a option to shutdown all VMs:

# xm shutdown -a

Add the -w if you want to make it wait for the domain to complete shutdown before returning

Thanks to Eugene for this tips. The script below is a “poor man”‘s solution.

I wrote a Bash script to automatically list all running VMs and shutdown them down by calling xm which I use to shutdown VMs on servers before turning them off.

The script is on github:

This script use the xm command for management. If you are using a newer version of Xen which possibly uses xl for VM management, you can easily change the script by replacing xm with xl and make other possibly required changes.


Eric is a father and systems guy. Eric is interested in building high-performance and scalable distributed systems and related technologies. The views or opinions expressed here are solely Eric's own and do not necessarily represent those of any third parties.

2 Replies to “Script: Shutting Down All Xen VMs on a Server”

  1. why?

    xm shutdown -a

    shutdown [OPTIONS] domain-id


    -a Shutdown all domains. Often used when doing a complete shutdown of a Xen system.

    -w Wait for the domain to complete shutdown before returning.

Leave a Reply

Your email address will not be published. Required fields are marked *