Woran erkenne ich, ob eine virtuelle Maschine in der Befehlszeile aktiv ist?


25

Wie kann ich über die Befehlszeile feststellen, ob eine bestimmte virtuelle Maschine über die Befehlszeile ausgeführt wird?


4
vboxmanage list runningvms
Slm

Antworten:


17
vboxmanage list vms

DOS nicht (mehr?) Sagt, ob der VM läuft oder nicht. Es werden auch keine laufenden aufgelistet.

vboxmanage showvminfo "your_vm_name" | grep -c "running (since"

Will gibt 1 zurück, wenn es läuft, oder 0, wenn nicht.


2
Also,if ! VBoxManage showvminfo VMNAME --machinereadable | egrep '^VMState="poweroff"$' > /dev/null; then ...
X-Yuri

unter Windows verwendenvboxmanage showvminfo "vmname or GUID" | findstr /c:"running (since"
phuclv

3
vboxmanage list runningvms
Slm

9

Wenn Sie eine Liste aller VMs anzeigen möchten, um zu sehen, ob sie ausgeführt werden oder nicht, verwenden Sie diesen Befehl:

vboxmanage list vms --long | grep -e "Name:" -e "State:"

Dies zeigt den Namen der VMs in einer Zeile und ihren Status in der folgenden Zeile wie in

Name:            windows10pro
State:           running (since 2017-06-09T09:16:46.593000000)
Name:            ubuntu16LTS
State:           powered off (since 2017-02-09T19:11:33.000000000)
Name:            zammad
State:           running (since 2017-06-09T09:08:13.871000000)

Die Ausgabe enthält Informationen zu freigegebenen Ordnern, die Sie möglicherweise eingerichtet haben. Pipe zu einem anderen grep, um es zu entfernen:... | grep -v -e 'Host path:'
Doug Thompson

Dies zeigt auch PAUSED-Maschinen, "list runningvms" denkt, dass angehaltene Maschinen laufen, was ein wenig verwirrend sein kann ...
Samuel Åslund

5

Dieser Befehl gibt die Liste der laufenden vms aus (getestet auf Virtualbox 5.1)

VBoxManage list runningvms

Um zu wissen, ob eine VM ausgeführt wird, sollte dieser Befehl den Job ausführen (1 zurückgeben, wenn ausgeführt, 0 andernfalls):

VBoxManage list runningvms | sed -r 's/^"(.*)".*$/\1/' | grep 'VM Name' | wc -l

Ein angehaltener Computer wird mit "list runningvms" angezeigt. Dies kann bei der Fehlerbehebung sehr verwirrend sein.
Samuel Åslund

1

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 .

Dies sind die gleichen Informationen wie bei VBoxManage list vms für alle virtuellen Maschinen werden.


1

Das Kombinieren VBoxManage list runningvmsmit grep 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:

$ VBoxManage list runningvms |grep '"demo_vm"'
$ echo $?
1

Für einen Läufer

$ VBoxManage list runningvms |grep '"demo_vm_on"'
"demo_vm_on" {bbff5c0e-f8d4-4751-8d34-c53c4b191613}
$ echo $?
0

In der anderen Antwort, in sedder die doppelten Anführungszeichen entfernt wurden, oder wenn das grep ohne doppelte Anführungszeichen ausgeführt wurde, werden falsche Positive zurückgegeben. Demonstration:

$ VBoxManage list runningvms |grep demo_vm
"demo_vm_on" {bbff5c0e-f8d4-4751-8d34-c53c4b191613}
$ echo $?
0

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.