如何在 Mac OS X 启动时自动启动程序?特别是 VMWare Fusion 的 vmrun 来启动虚拟机

And*_*ehm 5 mac boot vmware-fusion macos

如何将程序配置为在 Mac OS X 启动时(之后)自动运行?

具体来说,我试图让 VMWare VM 在 OS X 重新启动后自动启动,但运行任何(非图形)程序都会很有用。

(请注意,vmrun 在后台启动 VMware 虚拟机,Fusion GUI 可以稍后选取它们。所以这不是在我登录后在桌面上启动虚拟机!)

And*_*ehm 3

我尝试了几种方法并得到了最奇怪的结果。这就是最终起作用的:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>com.example.myvmname</string>
    <key>ProgramArguments</key>
    <array>
        <string>/Library/Application Support/VMware Fusion/vmrun</string>
        <string>start</string>
        <string>pathtovirtualmachinevmxfile.vmx</string>
        <string>nogui</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
    <key>UserName</key>
    <string>myusername</string>
    <key>KeepAlive</key>
    <true/>
</dict>
</plist>
Run Code Online (Sandbox Code Playgroud)

我在 /Library/LaunchDeamons 中创建了一个包含上述内容的文件 com.example.vmname.plist 并确保其所有者:组是 root:wheel。Apple 开发人员工具为 plist XML 文件提供了出色的编辑器。

这会产生以下行为,这对于我的环境来说是理想的(我有一台具有 8 GB 内存的八核 Mac Pro,并且可以在后台运行多个虚拟机,而不是挂起或关闭它们):

  1. 当 Mac OS X 启动时,VM 将在后台启动。这也适用于多个虚拟机。

  2. 如果虚拟机在任何时候崩溃,它将立即重新启动。

  3. 当虚拟机关闭或停止时,情况同样适用,除​​非通过 Fusion GUI 完成(后一种行为允许编辑虚拟机设置)。

  4. 当 Mac OS X 关闭时,VM 突然停止。我必须找到一种方法在系统重新启动之前更优雅地关闭它们。