18

Как узнать из командной строки, работает ли конкретная виртуальная машина и работает ли она из командной строки?

6 ответов6

12
vboxmanage list vms

Dos нет (больше?) говорит, работает ли виртуальная машина или нет. Это список также не работает.

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

Возвращает 1, если он работает, или 0, если нет.

6

Если вы хотите получить список всех виртуальных машин, чтобы увидеть, работают они или нет, используйте эту команду:

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

Это покажет имя виртуальной машины в одной строке и ее статус в следующей строке, например, в

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)
4

Эта команда выводит список запущенных vms (проверено на Virtualbox 5.1)

VBoxManage list runningvms

Чтобы узнать, работает ли vm, эта команда должна выполнить задание (верните 1, если запущено, 0 в противном случае):

VBoxManage list runningvms | sed -r 's/^"(.*)".*$/\1/' | grep 'VM Name' | wc -l
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 использовался для удаления двойных кавычек или если grep был выполнен без двойных кавычек, будут возвращаться ложные срабатывания. Демонстрация:

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

Я считаю, что вы можете получить эту информацию с помощью VBoxManage (интерфейс командной строки для VirtualBox).

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

Это та же информация, что и список VBoxManage для виртуальных машин.

0

root @ yourshell # vboxmanage список vms

Также смотрите этот документ.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .