Zielsetzung
Ich möchte diesen Befehl VBoxManage startvm MyVM --type headless
im Boot-System ausführen, genau wie es ein Dienst (Postgres, Apache) tut.
Was ich versucht habe
1. Ich habe versucht, eineServicemitscBefehl
Ich habe im Internet herausgefunden, dass dies die Lösung sein könnte, also habe ich alle diese Versionen ausprobiert:
sc create "vboxMyVMService" binPath= "C:\Progman Files\Oracle\VirtualBox\VBoxManage.exe startvm MyVM --type headless"
sc create "vboxMyVMService" binPath= "C:\Progman Files\Oracle\VirtualBox\VBoxManage startvm MyVM --type headless"
Kein Erfolg, also habe ich versucht, die ausführliche Ausgabe des Befehls zu unterdrücken
sc create "vboxMyVMService" binPath= "C:\Progman Files\Oracle\VirtualBox\VBoxManage.exe startvm MyVM --type headless > NUL"
sc create "vboxMyVMService" binPath= "C:\Progman Files\Oracle\VirtualBox\VBoxManage startvm MyVM --type headless"
Immer noch keine Ergebnisse. Alle diese Version gab mir ein1053Fehler. Der letzte Aufruf bestand also darin, den Virtualbox-Befehl zum Pfad hinzuzufügen
sc create "vboxMyVMService" binPath= "VBoxManage.exe startvm MyVM --type headless"
sc create "vboxMyVMService" binPath= "VBoxManage startvm MyVM --type headless"
Ausgabe unterdrücken
sc create "vboxMyVMService" binPath= "VBoxManage.exe startvm MyVM --type headless > NUL"
sc create "vboxMyVMService" binPath= "VBoxManage startvm MyVM --type headless > NUL"
Kein positives Ergebnis immer1053Fehler.
2. Computer-Startskripte zuweisen
Ich folgte diesemLernprogrammmit meiner letzten Hoffnung, doch ohne Erfolg.
Was blieb
Ich denke darüber nach, das Visual Studio herunterzuladen und etwas auszuprobieren, das mitErstellen Sie ein Serviceprojekt.
Also Leute, wo liegt mein Fehler? Gibt es noch Hoffnung für mich?
FAQs
Können Sie Ihr Betriebssystem auf Linux umstellen?
- Nein, das steht außer Frage.
Warum benötigen Sie diese VM zum Starten mit dem System?
- Leider ist dieser Windows 7-Host ein kleiner Server für die Anwendung, die über die VM läuft. Die Maschine gehört mir nicht und es ist die einzige Möglichkeit, die sie mir für die Bereitstellung gegeben haben.
Warum stellen Sie die Anwendung nicht innerhalb des Windows-Hosts bereit?
- Ich verwende weder PHP noch irgendwelche .NET-Sachen, also nein.
Antwort1
Ich laufe mitNSSM.
Erstellen Sie in der Eingabeaufforderung einen NSSM-Dienst wie:
nssm/win64/nssm.exe install vbox
Wählen Sie „Execute VBoxHeadless.exe“ wie im Bild:
Verwenden Sie bei der Anmeldung Ihr Windows-Konto (das ist sehr wichtig)
Dienst installieren
Funktioniert bei mir.
Antwort2
Ich konnte keinen Mechanismus finden, um eine VM als Dienst mit dem VBoxManager-Befehl zu starten, ohne dass sich jemand vorher anmelden muss.
Ich habe meine Ubuntu Server-VM mit dem folgenden VBoxVmService
Tool so aktiviert, dass sie als Dienst ausgeführt wird:
https://github.com/onlyfang/VBoxVmService
Kurzbeschreibung: VBoxVmService ist eine Windows-Anwendung, mit der Sie die VirtualBox-VMs von Oracle innerhalb einer nativen Windows-Diensteinheit ausführen können.
Der Hauptgrund, warum ich das brauche, ist, dass ich die VM starten möchte, ohne dass sich jemand anmelden muss. Da es sich bei mir um eine Entwickler-Workstation handelt, wird sie für Updates neu gestartet und ich vergesse manchmal, die VM zu starten, bis mich jemand daran erinnert.
So funktioniert das:
Stellen Sie zunächst manuell sicher, dass die erforderliche VM gestartet wird und ohne Fehler funktioniert. Andernfalls wird das Durchsuchen der Protokolle zu einer schwierigen Fehlerbehebung.
Nach der Installation
VMBoxService
ist es als Windows-Dienst ausführbarBearbeiten Sie die INI-Konfigurationsdatei (sieheHierfür vollständig dokumentierte Probe)
Starten Sie den Computer neu oder starten Sie einfach den
VMBoxService's
installierten Windows-DienstEs folgt eine Beispiel-INI
[Settings] VBOX_USER_HOME=C:\Users\YOUR_NAME_HERE\.VirtualBox PauseShutdown=8000 [Vm0] VmName=ubuntu-server ShutdownMethod=savestate AutoStart=yes
UPDATE: Unterstützt nur Win 10+