Як я можу дізнатись, чи не працює віртуальна машина з командного рядка?


25

Як я можу дізнатися з командного рядка, якщо певна віртуальна машина працює і працює з командного рядка?


4
vboxmanage list runningvms
slm

Відповіді:


17
vboxmanage list vms

Чи не (більше?) Не повідомляє, чи працює він або ні. У цьому списку також не запущені.

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

Поверне 1, якщо він працює, або 0, якщо ні.


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

для використання в Windowsvboxmanage showvminfo "vmname or GUID" | findstr /c:"running (since"
phuclv

3
vboxmanage list runningvms
slm

9

Якщо ви хочете, щоб список усіх віртуальних машин переглядав, чи вони запущені чи не використовують цю команду:

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

Це покаже ім'я VM в одному рядку та його статус у наступному рядку, наприклад у

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)

Вихід із цього містить інформацію про будь-які спільні папки, які ви могли б створити. Труба на інший греп, щоб зняти його:... | grep -v -e 'Host path:'
Дуг Томпсон

Це також показує машини PAUSED, "список runvms" вважає, що працює паузальна машина, яка може бути трохи заплутаною ...
Samuel Åslund

5

Ця команда виводить список запущених vms (тестований на Virtualbox 5.1)

VBoxManage list runningvms

Щоб знати, чи працює vm, ця команда повинна виконати роботу (повернути 1, якщо працює, 0 інакше):

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

Призупинена машина виявляється запущеною зі "списком запущених файлів", це може бути досить заплутаним при усуненні несправностей!
Самуель Еслунд

1

Я вважаю, що ви можете отримати цю інформацію за допомогою VBoxManage (інтерфейс командного рядка до VirtualBox).

Ви можете використовувати команду showvminfo для показу інформації про певну віртуальну машину.

Це та сама інформація, яку відображав би список vms VBoxManage для всіх віртуальних машин.


1

Поєднання VBoxManage list runningvmsз grep самостійно без нічого іншого не тільки дасть консольний вихід, але й надасть код повернення, необхідний для потреб сценарію оболонки. grepКоманда вимагає точної лапки для віртуальної машини в разі , коли передбачено ім'я віртуальної машини: приклад:

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

Для запущеного

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

В іншій відповіді, де sedбуло використано для усунення подвійних лапок, або якщо греп був зроблений без подвійних лапок, повертаються помилкові позитиви. Демонстрація:

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.