Завершение работы сервера Ubuntu, работающего в автономном VirtualBox

16

Я использую Ubuntu Server используя VBoxHeadless. Как отправить сигнал выключения ACPI через VirtualBox и заставить Ubuntu Server соблюдать его и соответствовать сигналу выключения?

Oxwivi
источник
Вы хотите отключить хост от гостя или только для гостя?
Таккат
@ Takkat Только для гостей.
Oxwivi

Ответы:

23

Если вы хотите закрыть гостевую Ubuntu, у вас есть два варианта:

Отключение гостя с помощью VBoxManage

Виртуальной машиной можно управлять из командной строки с помощью VBoxManageинструмента командной строки:

VBoxManage controlvm [nameofmachine] savestate       # saves the state of the VM like in suspend
VBoxManage controlvm [nameofmachine] poweroff        # simply "unplugs" the VM
VBoxManage controlvm [nameofmachine] acpipowerbutton # sends ACPI poweroff signal

Для отключения ACPI виртуальная ОС должна быть способной сделать это, и VirtualBox, возможно, также должен включить поддержку ACPI для виртуальной машины.

  • Включить опции VirtualBox ACPI:

    VBoxManage modifyvm [nameofmachine] --acpi on
  • Установите поддержку ACPI в виртуальной машине Ubuntu:

    sudo apt-get установить acpid

Отключение гостя от SSH

Безопасный способ выключить машину, если у вас есть доступ по SSH.

user@virtualmachine: sudo poweroff

Это позаботится о безопасном завершении работы и выключении гостевой ОС.

Takkat
источник
Я хочу использовать виртуальную машину в качестве сервера LAMP для тестирования. Поэтому после первоначальной настройки я хотел полностью избежать взаимодействия с ним (например, SSH). Но похоже, что нет никакого чистого способа завершить работу с VirtualBox.
Oxwivi
Подождите, теперь, когда вы упомянули VBoxManage, я проверил это man-страницу - есть вариант, который идет VBoxManage controlvm <uuid>|<name> acpipowerbutton. Будет ли Ubuntu Server уважать сигнал и отключение?
Oxwivi
Я думаю, что пакет acpidтребуется. Хотя мне нужно проверить, установлен ли он по умолчанию в Ubuntu Server.
Oxwivi
Я использую трюк с acpipowerbutton, чтобы выключить некоторые виртуальные машины Windows из cron, и он работает очень хорошо. К сожалению, я никогда не пытался использовать его для выключения сервера Linux.
Хавьер Ривера
1
Пожалуйста, добавьте их в ответ.
Oxwivi
0

Я нашел это здесь и проверил - работает хорошо.

/usr/bin/net rpc shutdown -f -t 1 -I XXX.XXX.XXX.XXX -U <shutdown_acc>%<password>

предполагает, что на хосте установлена ​​samba.

Kylea
источник