pessotti5
(usa Ubuntu)
Enviado em 09/12/2018 - 11:04h
Olá
Primeiramente Meu Muito Obrigado a quem se dispor a ajudar...
Meu problema é o seguinte...
Tenho um LAMP que roda uma página web de "tarefas do servidor" Para facilitar para o usuário... (Ubuntu 18.04, apache2 php7.2 e virtualbox 5.2)
Uma destas tarefas é desligar os Servidores pelo navegador, tanto o hospedeiro, quanto o convidado.
Sempre funcionou assim (de modo resumido): No desliga.php
if ($escolha == 'desligar'){
shell_exec("sudo /etc/gsvw/vm/desliga.sh");
e dentro do desliga.sh:
sudo su - vbox -c "VBoxManage controlvm UbuntuServer14.04 acpipowerbutton" -s /bin/bash vbox
Se digito pelo terminal ./desliga.sh Funciona!
O Problema é que não desliga pela web e eu venho usando isso desde o ubuntu server 12.04.
Eu editei o sudoers assim:
# User privilege specification
root ALL=(ALL:ALL) ALL
www-data ALL=NOPASSWD:ALL
vbox ALL=NOPASSWD:ALL
Nunca precisei fazer colocar o vbox, mesmo assim não funcionou
Então tentei outras tarefas do vboxmanage dentro do script desliga.sh e sempre executando pela web, já que pelo terminal funciona:
#!/bin/bash
# Lista VMs Cadastradas
sudo su vbox -c "VBoxManage list vms" -s /bin/bash vbox > /etc/gsvw/vm/listavm
Sucesso!!! Ele consegue executar e salva na saida a VM cadastrada
# Lista VMs em Execução
sudo su vbox -c "VBoxManage list runningvms" -s /bin/bash vbox > /etc/gsvw/vm/execucao
Aqui Começa o problema... ele não consegue listar com a VM ligada, e mesmo colocando um 2> para redirecionar a saida de erro o arquivo fica vazio.
# Tenta Desligar a VM
sudo su vbox -c "VBoxManage controlvm Ubuntu1404 acpipowerbutton" -s /bin/bash vbox 2> /etc/gsvw/vm/erro_desliga
Nesse o Erro aparece:
VBoxManage: error: Machine 'Ubuntu1404' is not currently running
Ele não consegue ver a VM rodando. Tentei mudar o bitstick do desliga.sh para o usuário vbox ao invés do www-data, mas não resolveu.
Se alguém puder dar outra ideia de como desligar a VM antes do hospedeiro executando pela web, eu agradeço.
Espero que tenha sido claro. Não sou experte em linux, longe disso.. mas sempre me virei com ajuda de posts já respondidos... desta vez não encontrei resposta nem nos gringos...
Mais uma vez muito obrigado a que puder dar alguma dica.