# VirtualBox ## Управление через CLI Вывести список зарегистрированных виртуальных машин: ```sh VBoxManage list vms ``` Вывести список запущенных виртуальных машин: ```sh VBoxManage list runningvms ``` Запуск виртуальной машины: ```sh VBoxManage startvm --type ``` где - `name or UUID` - имя или `UUID` запускаемой виртуальной машины - `type` - режим, в котором запустить виртуальную машину, например в графическом интерфейсе (`gui`) или в скрытом (`headless`) например: ```sh VBoxManage startvm ac67e7f1-9255-412b-a522-ebe3e264e4f6 --type headless ``` Для управления запущенной виртуальной машиной: ```sh VBoxManage controlvm ``` где `subcommand`: - ` pause|resume|reset|poweroff` ## Запуск как сервис systemd Необходимо добавить пользователя в группу `vboxusers`: ```sh sudo usermod -a -G vboxusers $USER ``` Создать модуль шаблона systemd для запуска и остановки виртуальных машин VirtualBox: ```sh sudo touch /etc/systemd/system/vbox_vm_start@.service ``` с содержимым: ```sh [Unit] Description=VirtualBox VM %I After=network.target vboxdrv.service Before=runlevel2.target shutdown.target [Service] User= Group=vboxusers Type=forking Restart=no TimeoutSec=5min IgnoreSIGPIPE=no KillMode=process GuessMainPID=no RemainAfterExit=yes ExecStart=/usr/bin/VBoxManage startvm %i --type headless ExecStop=/usr/bin/VBoxManage controlvm %i acpipowerbutton [Install] WantedBy=multi-user.target ``` Заменить `` на пользователя, от имени которого будет запускаться виртуальная машина. Для включения модуля запуска systemd выполнить команду: ```sh sudo systemctl enable vbox_vm_start@ ``` где `` заменть на имя виртуальной машины. Получть список виртуальных машин: ```sh VBoxManage list vms ``` **Для запуска сервисов имена VBox машин не должны содержать пробельные символы**