Jak mogę sprawdzić, czy maszyna wirtualna jest uruchomiona z wiersza poleceń?


25

Jak mogę stwierdzić z wiersza poleceń, czy konkretna maszyna wirtualna jest uruchomiona i działa z wiersza polecenia?


4
vboxmanage list runningvms
slm

Odpowiedzi:


17
vboxmanage list vms

Dos not (już?) Informuje, czy vm działa, czy nie. Lista również nie działa.

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

Zwraca 1, jeśli jest uruchomiony, lub 0, jeśli nie.


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

w systemie Windowsvboxmanage showvminfo "vmname or GUID" | findstr /c:"running (since"
phuclv

3
vboxmanage list runningvms
slm

9

Jeśli chcesz zobaczyć listę wszystkich maszyn wirtualnych, aby zobaczyć, czy są uruchomione, czy nie, użyj tego polecenia:

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

Spowoduje to wyświetlenie nazwy maszyn wirtualnych w jednym wierszu i jej statusu w następnym wierszu, na przykład w

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)

Dane wyjściowe z tego obejmują informacje o dowolnych skonfigurowanych folderach udostępnionych. Pipuj do innego grepa, aby go usunąć:... | grep -v -e 'Host path:'
Doug Thompson

Pokazuje to także PAUZOWANE maszyny, „lista runningvms” uważa, że ​​działają zatrzymane maszyny, co może być trochę mylące ...
Samuel Åslund,

5

To polecenie wyświetla listę uruchomionych vms (testowane na Virtualbox 5.1)

VBoxManage list runningvms

Aby wiedzieć, czy vm jest uruchomione, to polecenie powinno wykonać zadanie (zwróć 1, jeśli działa, 0 w przeciwnym razie):

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

Zatrzymana maszyna wyświetla się jako „z uruchomioną listą”, co może być dość mylące podczas rozwiązywania problemów!
Samuel Åslund,

1

Wierzę, że możesz uzyskać te informacje za pomocą VBoxManage (interfejs wiersza poleceń VirtualBox).

Możesz użyć polecenia showvminfo do wyświetlenia informacji o konkretnej maszynie wirtualnej.

Są to te same informacje, które pokazywałaby lista vms VBoxManage dla wszystkich maszyn wirtualnych.


1

Łączenie VBoxManage list runningvmsz grep samemu bez niczego innego nie tylko da wyjście konsoli, ale także zapewni kod powrotu wymagany do potrzeb skryptów powłoki. grepKomenda będzie wymagało dokładnego podwójny cudzysłów dla maszyny wirtualnej w przypadku gdy nazwa VM jest usługa: przykład:

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

Dla działającego

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

W drugiej odpowiedzi, w której sedużyto eliminacji podwójnych cudzysłowów, lub jeśli grep został wykonany bez podwójnych cudzysłowów, zwrócone zostaną fałszywe alarmy. Demonstracja:

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

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.