我尝试备份 Ubuntu VirtualBox 客户机。VirtualBoxsave state
不是一个解决方案,因为它依赖于 VirtualBox 版本。所以我需要执行 ACPI 关闭(使用 VirtualBox acpipowerbutton
)。问题是,如果不存在用户会话或用户会话未被锁定,Ubuntu 的 ACPI 关闭似乎可以工作。
到目前为止,我所做的就是编写一个 (Windows cmd) 脚本来关闭acpipowerbutton
VirtualBox Linux 客户机 (Ubuntu 和 MINT)。运行完美,但不适用于锁定的客户机系统用户会话。
再次:ACPI 已可用于解锁会话。但对于锁定会话则不行。systemctl status acpid.service
告诉我“活动(正在运行)”。所以我认为 ACPI 服务本身存在且正在运行,但需要配置?
有没有办法更改设置在 Ubuntu 中允许锁定会话的 ACPI 关闭?
或者 VirtualBox 中是否有任何“强制”选项来对锁定的 Ubuntu 客户机执行 ACPI 关闭?
答案1
您可能需要安装该acpid
服务才能实现此目标。以下是完整的步骤:
打开终端(如果尚未打开)
安装
acpid
服务:$ sudo apt install acpid
配置
acpid
运行在事件上调用的脚本doevents.sh
:$ sudo echo -e 'event=.*\naction=/etc/acpi/doevents.sh %e' > /etc/acpi/events/anything
笔记:文件名可以是任意的。如果您希望使用除
doevents.sh
,请随意替换。创建
doevents.sh
文件:$ sudo echo -e '#!/bin/bash\n\ncase "$1" in\nbutton/power)\ncase "$2" in\nPBTN) shutdown -h now ;;\nesac\nesac\n' > /etc/acpi/doevents.sh $ sudo chmod +x /etc/acpi/doevents.sh
重启
acpid
服务:sudo systemctl restart acpid.service
模拟按下虚拟机上的电源按钮。它应该可以正常关闭。
希望这能解决你的问题