我有一台运行 Mavericks 服务器的 Mac mini。我在 VMware Fusion Professional 6 中安装了 Atmail 服务器 + webmail vm [Linux Centos 发行版] 和 VMware Tools 插件。它运行完美。我已将其设置为在启动时启动,并且运行非常可靠。但是,我一直在寻找一种方法,当 OS X 因某种原因关闭时,也可以安全、优雅地关闭它。Mac 连接到 UPS 并配置为在电池电量不足时自动关机,因此这不会带来额外的问题。
现在我做的第一件事是进入 Fusion 的首选项并在关闭虚拟机时选择“关闭虚拟机”。但是我注意到,出于某种神秘的原因,关闭虚拟机窗口实际上会强制关闭虚拟机:所以我找到了这个邮政它向我展示了如何更改默认电源选项,我设法在关闭虚拟机窗口或完全退出 Fusion 时干净地关闭虚拟机。此时,我希望已经解决了问题,但事实证明,在调用系统关闭时,OS X 不会等待虚拟机关闭并在 Fusion 有机会关闭之前终止它。此时,我开始寻找一种方法来通过某些高级设置自动关闭客户操作系统,但没有成功。就在那时,我找到了一个关闭虚拟机的命令:vmrun
并且它起作用了。唯一剩下的就是找到一种方法在 os x 关闭时执行此脚本并给它一点时间完全关闭电源。然而,这变成了一场噩梦:我花了几个小时寻找使用启动项、rc.shutdown、cron、launchd 等执行此操作的几种方法……但它们都没有按照我配置的方式工作。
我不得不说,我发现关于使用 launchd 执行关机脚本的信息非常有限,我知道这是 OS X 世界中最新的功能,所以我希望你们中有人能帮我解决这个问题。我仍然认为这是一个非常基本的功能,我真的很惊讶能找到关于这个问题如此多不同方面的小文档。Fusion 是否太过基础了?
我真的希望有人能帮忙。提前谢谢大家。
答案1
您是否尝试过在 stackoverflow 上这个答案中讨论的方法?:-
https://stackoverflow.com/questions/16542301/running-a-shell-script-on-shutdown-via-launchd
基本上,您在机器启动时启动一个脚本,该脚本侦听 SIGTERM,然后在收到 SIGTERM 时运行所需的命令。
答案2
您安装了 vmware tools 吗?当我自己关闭计算机时,我可以关闭我的 vm guest 虚拟机,但是,当计算机通过 UPS 电池关闭命令关闭时,它无法通过。