Não tenho 100% de certeza, mas o hipervisor pode ordenar que o sistema operacional convidado encerre ou reinicialize, emulando um evento de hardware da ACPI, ou seja, tocando no botão liga / desliga.
Não há sinal diferenciado para o desligamento ou reinicialização, tanto quanto eu sei, apenas o botão de energia normal.
Isso significa que virsh shutdown
e virsh reboot
devem emular um toque no botão liga / desliga que é registrado pelo daemon ACPI do sistema operacional guest e resulta em um desligamento (no servidor Ubuntu por padrão) ou um prompt interativo (no desktop Ubuntu padrão) ou, no entanto, o sistema operacional convidado está configurado para manipular este evento.
A única diferença, eu acho, é que, uma vez que a VM foi desligada, se o comando foi virsh shutdown
, ela permanece desligada, mas se foi virsh reboot
, ela é ligada novamente imediatamente. Isso seria igual a uma inicialização a frio, não uma reinicialização a quente.
No entanto, olhando para o manual man virsh
, parece que há mais opções diferentes para enviar um comando de reinicialização que não seja apenas um evento ACPI. No entanto, não posso dizer nada sobre isso, infelizmente.
reboot domain [--mode MODE-LIST]
Reboot a domain. This acts just as if the domain had the reboot
command run from the console. The command returns as soon as it
has executed the reboot action, which may be significantly before
the domain actually reboots.
The exact behavior of a domain when it reboots is set by the
on_reboot parameter in the domain's XML definition.
By default the hypervisor will try to pick a suitable shutdown
method. To specify an alternative method, the --mode parameter can
specify a comma separated list which includes "acpi", "agent",
"initctl", "signal" and "paravirt". The order in which drivers will
try each mode is undefined, and not related to the order specified
to virsh. For strict control over ordering, use a single mode at a
time and repeat the command.