Ha pouco tempo resolvi abandonar o Hyper-V e voltar a utilizar o VirtualBox. Para o que preciso ele é mais simples e prático, mas não tem uma funcionalidade que é essencial: A capacidade de manter as VMs ligadas em background. Bom, não tem a funcionalidade, mas não quer dizer que ele não consiga deixar uma VM rodando em background. Neste post vou mostrar como fazer isso e dar uma sugestão de como ligar/desligar a vm automaticamente.
A primeira coisa que você tem que fazer é: localizar o arquivo VBoxManage.exe. Geralmente ele está no diretório “c:\Program Files\Oracle\VirtualBox”. Então, para o post, vou utilizar este caminho, mas você deve altera-lo, caso o seu seja diferente.
O comando para iniciar a maquina virtual sem a parte visual, fazendo com que ela fique rodando no background é um tipo de execução chamado ‘headless’.
Ligar a maquina virtual
Para ligar uma VM assim, basta utilizar o comando:
"c:\Program Files\Oracle\VirtualBox\VBoxManage.exe" startvm "nome da sua vm" –type headless
Listar maquinas virtuais instaladas
O nome da VM é, literalmente, aquele que você colocou quando a criou. Caso não lembre, existe um comando para listar as maquinas virtuais disponíveis:
"c:\Program Files\Oracle\VirtualBox\VBoxManage.exe" list vms
O comando acima vai listar as maquinas disponíveis, mostrando o nome e o id de cada uma.
Desligar a maquina virtual
Desligar a VM utilizando linha de comando também é algo fácil, basta utilizar o comando:
"c:\Program Files\Oracle\VirtualBox\VBoxManage.exe" controlvm "nome da sua vm" poweroff soft
O comando acima faz com que a VM em questão seja desligada e o argumento “soft” faz com que o VirtualBox não desligue a maquina ‘puxando o cabo da tomada’. Todavia, vale lembrar que isso faz com que o processo demore um pouco mais (porém é mais seguro).
Inicialização automática da VM
Para fazer com que a maquina seja inicializada automaticamente quando o computador (físico) ligar, você pode:
1. Pasta Inicializar do Windows
- Aperte Windows + R, digite: shell:startup e aperte enter;
- Na pasta que vai abrir, crie um arquivo e insira o comando de iniciar a maquina (veja acima);
- Salve este arquivo como iniciar_vm.bat (pode mudar o nome, se preferir. desde que a extensão seja .bat)
Pronto. Sua VM irá iniciar automaticamente e ficará rodando em background!
2. Agendando tarefas
A segunda maneira seria agendando uma tarefa no Windows. O Agendador de tarefas é uma ferramenta muito útil e muito grande para ser totalmente explicada neste post. Então vou focar apenas na criação da tarefa específica.
- Aperte Windows + R, digite: taskschd.msc e aperte enter;
- Clique no menu actions (ações) e escolha a opção “create basic task” (criar tarefa básica);
- Na janela que abrir, você deve informar o nome da tarefa, que pode ser qualquer coisa. Este nome é para te ajudar a manter as coisas organizadas. Sugiro algo como “Inicia VM xpto automaticamente”. Também existe um campo de descrição, mas ele é opcional;
- Quando preencher os campos, clique em Next (Próximo)
- Será exibida uma lista de tipos de agendamento. Escolha a opção “When the computer starts” (Quando o computador iniciar) e clique em Next (Próximo);
- Na lista de ações, selecione “Start a program” (Iniciar um programa) e clique em Next (Próximo);
- Esta é a tela mais importante para o que estamos fazendo. No campo “Program/script” (Programa/Script), informe o endereço: “c:\Program Files\Oracle\VirtualBox\VBoxManage.exe“. Inclua as aspas, pois os diretórios possuem espaços no nome. (Lembre-se de adaptar o caminho para o arquivo, se ele ficar em um local diferente na sua maquina);
- No campo “Add arguments (optional)” (Argumentos (opcionais)), informe a outra parte da linha de comando: startvm “nome da sua vm” –type headless;
- Quando terminar, clique em próximo e depois em Finish (Concluir).
Pronto! Quando você ligar seu computador, esta tarefa será executada automaticamente e a sua VM começará a rodar em background.
Extra!
Se você optar por este método, pode criar também uma tarefa que será executada no momento em que o computador for desligado.
Para isso, repita o passo a passo acima, mas no passo 5 escolha a opção: “When a specific event is logged” (Quando um evento específico ocorrer) e clique em Next (Próximo) e preencha os campos da próxima tela com os dados abaixo:
- Log: System
- Source: USER32
- Event ID: 1074
Clique em Next (Proximo).
Agora basta terminar de seguir o passo a passo anterior até o passo 8. Neste ponto, ao invés de colocar os argumentos para iniciar a maquina, você vai colar os argumentos necessários para o comando de desligar a VM (controlvm “nome da sua vm” poweroff soft).
Conclua a operação e pronto: Agora você tem duas tarefas sendo executadas automaticamente: a de fazer a maquina virtual rodar em background e a de desliga-la!
(Dependendo da VM que você criar, pode ser que ela segure o processo de shutdown. Vale testar.)
Existe uma terceira forma, que é utilizando as politicas de grupo do Windows, mas vou deixar este método para um momento futuro.
Espero ter ajudado!
Latest posts by Breno RdV (see all)
- O que é Metaclass e como ela funciona. (#python #dev #metaclass) - janeiro 11, 2023
- Entenda a mágica dos Generators. (#python, #dev, #generator, #iterator) - dezembro 28, 2022
- Ordenando um DataFrame por múltiplas colunas. (#python #pandas #jupyter #dev #data) - agosto 3, 2022