A falta de que alguien indique una forma de hacer esto dentro de Parallels, he aquí una solución que utiliza únicamente utilidades nativas - gracias @usuario3439894 ¡por sugerir un Agente de Lanzamiento!
-
Crear un /usr/local/bin/parallels_vm_starting
shell script y chmod 755
para que sea ejecutable:
!/bin/bash
(
echo "----------"
date
if /usr/bin/tty -s
then
echo "interactive"
else
# sleep for a bit to give things a chance to settle
echo "background - let things settle"
sleep 15
date
fi
# Actions to perform when hosted VM starts up
/usr/local/Homebrew/bin/brew services restart redis
# etc. as needed
date
) 2>&1 | tee -a /tmp/vm-startup.log
-
Crear un archivo de Agente de Lanzamiento ~/Library/LaunchAgents/parallels_vm_startup.plist
con este contenido:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>parallels_vm_startup</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/bin/parallels_vm_starting</string>
</array>
<key>WatchPaths</key>
<array>
<string>/Library/Preferences/Parallels/parallels_dhcp_leases</string>
</array>
<key>StandardOutPath</key>
<string>/dev/null</string>
</dict>
</plist>
Esto controlará el archivo /Library/Preferences/Parallels/parallels_dhcp_leases
que Parallels modifica cuando la VM se inicia (asumiendo que la VM tiene la red habilitada), y ejecutará el shell script cuando esto ocurra.
Nota: el archivo de arrendamientos DHCP se actualiza regularmente mientras la máquina virtual está en funcionamiento. Si sólo desea reaccionar ante el lanzamiento o el cierre de una VM, supervise el archivo /Library/Preferences/Parallels/vmdirectorylist.desktop.xml
en su lugar.
- Activar el Agente:
launchctl load ~/Library/LaunchAgents/parallels_vm_startup.plist