Arresto corretto di viartualmachines Virtualbox

Installazione di Ubuntu su macchina virtuale (Virtualbox, Vmware, Qemu, Parallels, KVM, Xen, Virtual pc, ecc.), configurazione del software e gestione del sistema virtualizzato.
GizMo
Prode Principiante
Messaggi: 29
Iscrizione: martedì 9 maggio 2017, 2:41
Sesso: Maschile

Arresto corretto di viartualmachines Virtualbox

Messaggio da GizMo »

Ho installato virtualbox con una VM che parte in automatico al boot, seguando questa guida Clicca per la guida

Il file del servizio è questo:

Codice: Seleziona tutto

[Unit]
Description=VBox Virtual Machine %i Service
Requires=systemd-modules-load.service
After=systemd-modules-load.service vboxdrv.service

[Service]
User=gizmo
Group=gizmo

ExecStart=/usr/bin/VBoxHeadless -s %i
ExecStop=/usr/bin/VBoxManage controlvm %i acpipowerbutton

[Install]
WantedBy=multi-user.target
La macchina virtuale viene avviata corettamente al boot del server, ma allo spegnimento o se eseguo lo stop con systemd invece di ricevere correttamente il comando acpipowerbutton e spegnersi correttamente come avveniva quando facevo la stessa cosa su archlinux lo spegnimento fallisce e systemd killa il processo spegnendo male la VM, facendo lo status del servizio trovo questo:

Codice: Seleziona tutto

  Process: 2797 ExecStop=/usr/bin/VBoxManage controlvm WXP acpipowerbutton (code=exited, status=1/FAILURE)
  Process: 2765 ExecStart=/usr/bin/VBoxHeadless -s WXP (code=killed, signal=TERM)
 Main PID: 2765 (code=killed, signal=TERM)
ho notato che se eseguo manualmente "/usr/bin/VBoxManage controlvm WXP acpipowerbutton" come root non trova la macchina virtuale, mentre se eseguo lo stesso comando come utente "gizmo" la macchina viene arrestata in modo corretto, come se il comando di start venisse eseguito correttamente come utente "gizmo" mentre il comando di stop no, qualche idea ? :(
Avatar utente
thece
Tenace Tecnocrate
Tenace Tecnocrate
Messaggi: 12949
Iscrizione: lunedì 23 aprile 2007, 14:16
Distribuzione: Debian 12 (Bookworm) - KDE

Re: Arresto corretto di viartualmachines Virtualbox

Messaggio da thece »

:ciao:

hai provato con ... ?

Codice: Seleziona tutto

ExecStop=/usr/bin/VBoxManage controlvm %i poweroff
GizMo
Prode Principiante
Messaggi: 29
Iscrizione: martedì 9 maggio 2017, 2:41
Sesso: Maschile

Re: Arresto corretto di viartualmachines Virtualbox

Messaggio da GizMo »

poweroff spegne la VM staccando la spina, ho cmq provato poweroff soft con lo stesso risultato, il problema non è il comando, "controlvm %i acpipowerbutton" eseguito come utente fa il suo corso correttamente e su archlinux pure funzionava ma su ubuntu pare che "VBoxHeadless -s %i" venga eseguito come utente normale e trova la VM e la avvia mentre VBoxManage venga eseguito come root, non trova la VM e quindi systemd killa il processo alla brutta.
Avatar utente
thece
Tenace Tecnocrate
Tenace Tecnocrate
Messaggi: 12949
Iscrizione: lunedì 23 aprile 2007, 14:16
Distribuzione: Debian 12 (Bookworm) - KDE

Re: Arresto corretto di viartualmachines Virtualbox

Messaggio da thece »

Che le VM siano viste da un utente (gizmo) e non dall'altro (root) mi sembra una cosa normale.
Per come è scritto

Codice: Seleziona tutto

...
[Service]
User=gizmo
Group=gizmo
...
che il tuo script venga eseguito in start come utente gizmo e in stop come utente root no. Sei sicuro di quello che affermi? Al momento non ho modo di provare
GizMo
Prode Principiante
Messaggi: 29
Iscrizione: martedì 9 maggio 2017, 2:41
Sesso: Maschile

Re: Arresto corretto di viartualmachines Virtualbox

Messaggio da GizMo »

se eseguo il comando di stop manualmente come root ottengo questo:

Codice: Seleziona tutto

VBoxManage controlvm WXP acpipowerbutton
VBoxManage: error: Could not find a registered machine named 'WXP'                                                                                                                                       
VBoxManage: error: Details: code VBOX_E_OBJECT_NOT_FOUND (0x80bb0001), component VirtualBoxWrap, interface IVirtualBox, callee nsISupports                                                                        
VBoxManage: error: Context: "FindMachine(Bstr(a->argv[0]).raw(), machine.asOutParam())" at line 96 of file VBoxManageControlVM.cpp
Se eseguo lo stesso comando come utente gizmo la VM viene arrestata correttamente
Ultima modifica di trekfan1 il martedì 9 maggio 2017, 20:22, modificato 1 volta in totale.
Motivazione: Inseriti i tag CODE (CODICE)
Avatar utente
thece
Tenace Tecnocrate
Tenace Tecnocrate
Messaggi: 12949
Iscrizione: lunedì 23 aprile 2007, 14:16
Distribuzione: Debian 12 (Bookworm) - KDE

Re: Arresto corretto di viartualmachines Virtualbox

Messaggio da thece »

E "manualmente" mi torna.
Però tu devi usare la definizione del servizio, sia per avviare che per arrestare la VM ... e il diverso comportamento in questo caso non mi torna
Scrivi risposta

Ritorna a “Ubuntu su macchina virtuale”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 8 ospiti