关闭在无头VirtualBox中运行的Ubuntu Server


16

我正在使用运行Ubuntu Server VBoxHeadless。如何通过VirtualBox发送ACPI关机信号,并使Ubuntu Server尊重它并遵守关机信号?


您是要从来宾关闭主机还是要仅关闭来宾?
塔卡特

@Takkat仅限访客。
Oxwivi

Answers:


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关闭电源,虚拟OS必须能够执行此操作,VirtualBox可能还需要为VM启用ACPI支持。

  • 启用VirtualBox ACPI选项:

    VBoxManage Modifyvm [nameofmachine] --acpi开启
  • 在Ubuntu VM中安装ACPI支持:

    sudo apt-get install acpid

从SSH关闭来宾

如果您拥有SSH访问权限,可以使用更安全的方式关闭计算机

user@virtualmachine: sudo poweroff

这将确保安全关闭来宾OS并关闭其电源。


我想将VM用作LAMP服务器以进行测试。因此,在完成初始设置后,我想避免与之完全交互(例如SSH)。但是,似乎没有干净的方法可以关闭VirtualBox。
Oxwivi

等一下,既然您已经提到了VBoxManage,我就检查了它的联机帮助页 -里面有一个选项VBoxManage controlvm <uuid>|<name> acpipowerbutton。Ubuntu Server会尊重信号并关闭吗?
Oxwivi

我认为该程序包acpid是必需的。虽然我需要检查它是否默认安装在Ubuntu Server中。
Oxwivi

我使用acpipowerbutton技巧从cron中关闭了一些Windows虚拟机,并且效果很好。不幸的是,我从未尝试过使用它来关闭Linux服务器。
哈维尔·里维拉,

1
请将这些添加到答案中。
Oxwivi

0

我在这里找到并进行了测试-效果很好。

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

假设samba已安装在主机上。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.