Eu tentei alguns métodos e obtive os resultados mais estranhos. Isto é o que finalmente funcionou:
<?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>
Eu criei um arquivo com.example.vmname.plist contendo o arquivo acima em / Library / LaunchDeamons e assegurei que seu dono: group fosse root: wheel. as ferramentas para desenvolvedores da Apple fornecem um excelente editor para arquivos XML plist.
Isso produz o seguinte comportamento, ideal para meu ambiente (tenho um Mac Pro de oito núcleos com 8 GB de memória e posso executar várias VMs em segundo plano, em vez de suspendê-las ou desligá-las):
-
Quando o Mac OS X inicializa, a VM é inicializada em segundo plano. Isso também funciona para mais de uma VM.
-
Se, a qualquer momento, a VM travar, ela será reiniciada imediatamente.
-
O mesmo se aplica quando a VM está sendo desligada ou interrompida, a menos que seja feita a partir da GUI do Fusion (o último comportamento permite editar as configurações da VM).
-
Quando o Mac OS X é desligado, a VM pára de repente. Eu tenho que encontrar uma maneira de desligá-los mais graciosamente antes de reiniciar o sistema.