Sometimes it may happen that your vm has hanged and XenCenter controls(Reboot and Force Reboot) do not work.
You may see an error when you try to force a reboot (The operation could not be performed because a domain still exists for the specified VM.).
This is a process to reboot the hanged vm from the XenServer host console.
To get the uuid of the VM that is hung:
xe vm-list
Get the vm domain id by uuid:
list_domains
Then destroy the domain of the vm:
/opt/xensource/debug/destroy_domain -domid <domid>
Now you can force a reboot on your vm:
xe vm-reboot uuid=<uuid> --force
If it has no effect you can also try:
xe vm-reset-powerstate uuid=<uuid> --force
Note that it may take up to 3 minutes to complete.
Additionaly, if the last two commands take more than 3 minutes to finish (as suggested in the post), cancel it with a CTRL+C and issue the following command:
xe-toolstack-restart
If you are using XenCenter, the host will disconnect for a short amount of time, but the other VMs will continue to work. After this, issue the xe vm-reboot uuid=XXXX command again.
Ps: Sorry for the grammar, english is not my first language.
First of all what are the reason for the VM to go to hung state.