Как узнать из командной строки, работает ли конкретная виртуальная машина и работает ли она из командной строки?
6 ответов
vboxmanage list vms
Dos нет (больше?) говорит, работает ли виртуальная машина или нет. Это список также не работает.
vboxmanage showvminfo "your_vm_name" | grep -c "running (since"
Возвращает 1, если он работает, или 0, если нет.
Если вы хотите получить список всех виртуальных машин, чтобы увидеть, работают они или нет, используйте эту команду:
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)
Эта команда выводит список запущенных vms (проверено на Virtualbox 5.1)
VBoxManage list runningvms
Чтобы узнать, работает ли vm, эта команда должна выполнить задание (верните 1, если запущено, 0 в противном случае):
VBoxManage list runningvms | sed -r 's/^"(.*)".*$/\1/' | grep 'VM Name' | wc -l
Комбинирование 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
Я считаю, что вы можете получить эту информацию с помощью VBoxManage (интерфейс командной строки для VirtualBox).
Вы можете использовать команду showvminfo для отображения информации о конкретной виртуальной машине.
Это та же информация, что и список VBoxManage для виртуальных машин.
root @ yourshell # vboxmanage список vms
Также смотрите этот документ.