无法在OS X Lion的启动/关机时启动

时间:2012-02-20 15:22:16

标签: osx-lion startup shutdown launchd vmware-fusion

我跟踪了一些在线指南试图让一些无头虚拟机在我的Mac上启动/关闭时自动启动/暂停。我根本无法工作。这是我第一次尝试在启动/关机时运行脚本,所以可能是因为我只是遗漏了一些非常基本的东西,如果是这种情况我会道歉。

这些是我遵循的步骤:

  • 创建了一个目录/Library/StartupItems/HeadlessVM
  • 在该目录中创建了两个文件:

    -rwxr--r--  1 root  wheel  242 Feb 19 19:05 HeadlessVM
    -rw-r--r--  1 root  wheel  188 Feb 20 12:42 StartupParameters.plist
    

    HeadlessVM的内容

    $ cat HeadlessVM
    #!/bin/sh
    
    . /etc/rc.common
    
    StartService () 
    {
        ConsoleMessage "Starting HeadlessVM"
        /usr/local/bin/runvmheadless
    }
    
    StopService () 
    {
        ConsoleMessage "Suspending HeadlessVM"
        /usr/local/bin/suspendvmheadless
    }
    
    RunService "$1"
    

    StartupParameters.plist的内容

    $ cat StartupParameters.plist
    {
      Description     = "Runs/Suspends Virtual Machine Headless on OS X Startup/Shutdown";
      Provides        = ("HeadlessVM");
      Uses            = ("Disks");
      OrderPreference = ("Late");
    }
    
  • 创建了我的脚本文件,它们将执行这两个操作:

      -rwxr-xr-x@ 1 xxxxxxx  admin  164 Feb 19 01:06 runvmheadless
      -rwxr-xr-x@ 1 xxxxxxx  admin  160 Feb 19 01:19 suspendvmheadless
    

    runvmheadless的内容

    $ cat runvmheadless
    #!/bin/bash
    "/Applications/VMware Fusion.app/Contents/Library/vmrun" -T fusion start "/Volumes/Archive/Virtual Machines/vm.vmwarevm/vm.vmx" nogui
    

    suspendvmheadless的内容

    $ cat suspendvmheadless
    #!/bin/bash
    "/Applications/VMware Fusion.app/Contents/Library/vmrun" -T fusion suspend "/Volumes/StaticData/Virtual Machines/vm.vmwarevm/vm.vmx"
    
  • 到目前为止我的问题排查:

    • 如果我从终端运行脚本,它们按预期工作。
    • 如果我运行sudo /sbin/SystemStarter (start or stop) "HeadlessVM"它也可以。
    • 在控制台上我只有在重新启动时才会看到以下内容,不知道该怎么回事。

      2/20/12 12:11:09.128 PM SystemStarter:在OS X上运行/暂停虚拟机无头启动/关闭(100)未成功完成

感谢您的帮助,谢谢。

1 个答案:

答案 0 :(得分:0)

我发现了什么问题。上面的代码很好,问题是我的脚本试图从加密的辅助磁盘中获取数据,这在启动时是不可用的。

我用它来绕过这个问题:https://github.com/jridgewell/Unlock

由于