Wie kann ich über die Befehlszeile feststellen, ob eine bestimmte virtuelle Maschine über die Befehlszeile ausgeführt wird?
virtualbox
BenAlabaster
quelle
quelle
vboxmanage list runningvms
Antworten:
DOS nicht (mehr?) Sagt, ob der VM läuft oder nicht. Es werden auch keine laufenden aufgelistet.
Will gibt 1 zurück, wenn es läuft, oder 0, wenn nicht.
quelle
if ! VBoxManage showvminfo VMNAME --machinereadable | egrep '^VMState="poweroff"$' > /dev/null; then ...
vboxmanage showvminfo "vmname or GUID" | findstr /c:"running (since"
vboxmanage list runningvms
Wenn Sie eine Liste aller VMs anzeigen möchten, um zu sehen, ob sie ausgeführt werden oder nicht, verwenden Sie diesen Befehl:
Dies zeigt den Namen der VMs in einer Zeile und ihren Status in der folgenden Zeile wie in
quelle
... | grep -v -e 'Host path:'
Dieser Befehl gibt die Liste der laufenden vms aus (getestet auf Virtualbox 5.1)
Um zu wissen, ob eine VM ausgeführt wird, sollte dieser Befehl den Job ausführen (1 zurückgeben, wenn ausgeführt, 0 andernfalls):
quelle
Ich glaube, Sie können diese Informationen mit VBoxManage (Befehlszeilenschnittstelle zu VirtualBox) erhalten.
Mit dem Befehl showvminfo können Sie Informationen zu einer bestimmten virtuellen Maschine anzeigen .
quelle
Das Kombinieren
VBoxManage list runningvms
mitgrep
alone ohne irgendetwas anderes ergibt nicht nur eine Konsolenausgabe, sondern liefert auch den Rückkehrcode, der für die Shell-Skriptanforderungen erforderlich ist. Dasgrep
Befehl erfordert das genaue Anführungszeichen für die VM, wenn ein VM-Name angegeben wird: Beispiel:Für einen Läufer
In der anderen Antwort, in
sed
der die doppelten Anführungszeichen entfernt wurden, oder wenn das grep ohne doppelte Anführungszeichen ausgeführt wurde, werden falsche Positive zurückgegeben. Demonstration:quelle
Siehe auch dieses Dokument.
quelle