Como desligar com segurança o SO convidado no VirtualBox usando a linha de comando


70

Eu tenho o Ubuntu 10.10 e usando o VirtualBox 3.2. Como SO convidado, tenho outro Ubuntu no VirtualBox.

Estou iniciando o Guest Ubuntu automaticamente usando o seguinte comando quando o meu Host Ubuntu inicializar:

VBoxHeadless -startvm Ubuntu --vrdp on

Então eu posso acessá-lo com ssh ou tsclient.

Agora eu preciso desligar automaticamente o Guest Ubuntu quando eu desligar o meu Host Ubuntu. Alguém conhece algum método seguro para desligar automaticamente o Guest Ubuntu com uma linha de comando? Descobri duas maneiras de desligar o SO convidado, mas não tenho certeza se elas são seguras ou não. Aqui estão eles:

VBoxManage controlvm Ubuntu acpipowerbutton

ou

VBoxManage controlvm Ubuntu poweroff

Respostas:


57

Se você abrir as preferências de gerenciamento do Gnome Power, poderá definir quais ações executar quando o botão liga / desliga. Se você configurá-lo para desligar, ele será desligado normalmente quando você pressionar o botão liga / desliga virtual com o VBoxManage controlvm Ubuntu acpipowerbutton comando


16

Para desligar com segurança o vm, use este comando:

vboxmanage controlvm Ubuntu poweroff soft

9
Você pode fornecer sua fonte? Parece que não consigo encontrar nada sobre essa opção "flexível" no capítulo 8 da documentação do VBox.
Rbaleksandar

5
Matando vms desavisados ​​desde 2013. Talvez remova esta resposta? Qualquer um?
Desarraigado

11

Se você estiver desligando o vm quando o servidor o fizer, precisará aguardar o (s) vm (s)

(Neste shellscript, 'root' é o invocador e 'theuser' é o proprietário de 'thevm')

Eu sei que o vms terminou quando a saída do comando VBoxManage list runningvmsretorna uma string vazia.

Eu uso isso no meu script de shell

...
stop(){
    su -c "VBoxManage controlvm thevm acpipowerbutton" -s /bin/bash theuser
    while [ "`su -c 'VBoxManage list runningvms' -s /bin/bash theuser`" != "" ]
    do
        echo waiting for VMs to shutdown
        sleep 3
    done
}
...

9

Não faça isso:

VBoxManage controlvm Ubuntu poweroff

É equivalente a puxar o plugue de energia de um computador real. Você não quer fazer isso!

Use o método de desligamento da ACPI (verifique a configuração de gerenciamento de energia como sugere Egil) ou talvez savestateexperimente o método de salvar estado ( ).


11
provavelmente deve colocar o não faça isso! parte antes do comando. Eu li as duas primeiras linhas e executei o comando!
Nsane

11
@ nisargshah95 Gostaria de referir o exemplo dado por esta discussão . Leia sempre todas as instruções primeiro e faça um esforço para entender qualquer comando antes de executá-lo. Especialmente verdade no Linux.
Samuel Harmer

2
Eu entendo, mas no caso mais comum, depois de ler o comando, uma pessoa iria inferir que é a solução (sem ler qualquer outra)
nSane

Concordo @nsane - sugeri uma edição para que isso não aconteça com outras pessoas.
Adam K Dean

6

Você deve desligar o Ubuntu virtual, assim como o hardware real. De uma linha comercial em uma sessão ssh remotamente:

sudo poweroff

Se você deseja salvar o estado da máquina (semelhante a suspender / hibernar), use o segundo ponto na resposta do @ htorque .


-4

Normalmente, eu desligo a VM (Linux) $ sudo shutdown -h now porque acho que é a maneira mais fácil de finalizar a VM porque ela é desligada (não é desligada) e fornece tempo de cortesia e (possivelmente) a mensagem para os usuários de logon.


11
A questão está relacionada ao desligamento do sistema operacional convidado do host. Isso não teria o efeito desejado, se você o executasse na máquina host.
21717 Dave
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.