Частым сценарием использования в Mac Server является запуск Windows экземпляра в виртуальном окружении используя VMWare Fusion.
Но бывает неудобной после перезагрузки (особенно если она связана с перезагрузкой по питанию) необходимость вручную стартовать виртуальную машину.
Можно ли настроить автоматический запуск boot time?
Оказывается, можно, и не так уж сложно.
В Mac OS есть отличный механизм автозапуска демонов и агентов boot time, а также перезапуска оных в случае чего — launchctl (читаем маны).
Для нашего случая необходимо создать следующий скрипт, назовем его /Library/Application Support/VMware Fusion/boot-vm.sh
#!/bin/bash
while [! -e /var/run/vmnet-bridge-vmnet.pid]; do
sleep 1
done
"/Library/Application Support/VMware Fusion/vmrun" start "/Users/admins/Documents/Virtual Machines.localized/Windows XP Professional.vmwarevm/Windows XP Professional.vmx"
где после start — путь вашей виртуальной машины.
для boot-vm.sh добавим аттрибуты запуска:
chmod +x boot-vm.sh
и создадим следующий файл /Library/LaunchDaemons/com.vmware.launchd.fusion-server.plist
<?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.vmware.launchd.fusion-server</string> <key>ProgramArguments</key>
<array>
<string>/Library/Application Support/VMware Fusion/boot-vm.sh</string> </array>
<key>RunAtLoad</key>
<true/>
<key>ExitTimeOut</key>
<integer>0</integer>
<key>LaunchOnlyOnce</key>
<true/>
<key>UserName</key>
<string>admins</string>
</dict>
</plist>
теперь должно взлетать
проверить, что «все правильно сделал» (с) можно командой
launchctl load com.vmware.launchd.fusion-server.plist
должно взлететь.
UPDATE:
в бекграунде vmware fusion не работает, без логона у вас не получится запустить vmware 3 (это работало только для vmware 2