при запуске virtualbox vm использующий sudo, это не может найти VMs

Я создал 2 VMs использование VirtualBox, и я могу запустить их прекрасный как мой собственный пользователь, использующий следующую команду:

vboxmanage startvm myVM -type headless

но когда я пробую ту же команду sudo, или в systemd сервисе, это возвращает это, это не может найти VM.

Я узнал это

Это перестало работать, потому что Вы используете sudo. VirtualBox разработан, чтобы быть выполненным любым пользователем (в vboxusers группе), и sudo выполняет команду как пользователя root, конфигурация VirtualBox которого пуста.

Но я просто не знаю, как сделать его поэтому, когда выполнено как корень (с sudo), чтобы иметь virtualbox существующие настройки.

Какая-либо идея?

1
задан 19 May 2018 в 17:45

1 ответ

Чтобы запустить виртуальную машину при входе в систему и сделать так, чтобы она остановилась при выходе из системы, вы можете использовать системные юзеры systemd.

Создайте файл `~ / .config / systemd / user / myvm.service со следующим содержимым:

[Unit]
Description=My VM

[Service]
ExecStart=vboxmanage startvm myVM -type headless
ExecStop=vboxmanage controlvm myVM acpipowerbutton 
# Actually, I'm not sure about the stop command, but I'm confident you will figure that one out
RemainAfterExit=true

[Install]
WantedBy=default.target

Затем запустите systemctl --user enable myvm.service. Теперь вы можете запустить виртуальную машину с помощью systemctl --user start myvm.service и остановить ее с помощью systemctl --user stop myvm.service. Вход и выход из системы должны запускать и останавливать вашу виртуальную машину.

Если вам нужно это при загрузке вместо входа в систему, вы можете попытаться сделать это системным системным модулем и указать исполняющего пользователя в разделе [Service] с помощью User= и Group=.

0
ответ дан 8 December 2019 в 00:59

Другие вопросы по тегам:

Похожие вопросы: