虚拟机中需要 acpid 吗?

虚拟机中需要 acpid 吗?

我总是想知道虚拟机中的电源管理设施是否必要?

即酸。

我不确定它们是否仍然可以在虚拟机中运行。

答案1

严格来说,不,您不需要acpid在虚拟机或真实系统中。但您应该安装acpid在虚拟机中,因为它通常会处理电源按钮按下操作,如果您关闭虚拟机,虚拟机管理程序会模拟按下电源按钮。

因此,出于实际原因,您应该在虚拟机上安装 acpid。

PS:acpid并没有真正进行电源管理

答案2

我会离开它。我相信 ACPI 所做的不仅仅是电源管理。例如,我相信当您希望访客关闭或重新启动时,会通过 VM 主机向访客发送 ACPI 事件。

摘自手册:KVM:

关闭

向 KVM guest 发出 ACPI 关闭命令,如果 guest 不支持 ACPI,命令无效。

重启

向 KVM guest 发出 ACPI 关闭命令,如果 guest 不支持 ACPI,命令无效。 KVM guest 关闭后,关闭完成后将由主机自动启动。

参考

答案3

似乎在现代系统上acpid没有必要完全关闭或重新启动虚拟机,即使虚拟机管理程序使用 ACPI 也是如此。内核将电源按钮导出为输入设备(在 中/dev/input):

$ sudo journalctl -b 0 | grep Power
kernel: input: Power Button as /devices/LNXSYSTM:00/LNXPWRBN:00/input/input0
...
systemd-logind[451]: Watching system buttons on /dev/input/event0 (Power Button)

该按钮按下依次由 systemd-logind 处理登录按钮.c

这对我有用virsh shutdownvirsh reboot,在这两种情况下我都可以从日志中看到服务器完全关闭

systemd-logind[535]: Power key pressed.
systemd-logind[535]: Powering Off...
systemd-logind[535]: System is powering down.

相关内容