0

我遵循了一些在线指南,试图让一些无头虚拟机在我的 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) 上运行/挂起无头虚拟机未成功完成

感谢任何帮助,谢谢。

4

1 回答 1

0

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

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

谢谢

于 2012-02-26T04:21:51.043 回答