Sugiero usar un demonio como SleepWatcher . Una vez que haya instalado SleepWatcher (ref. El README incluido con él), puede ejecutar comandos como los siguientes.
/usr/local/sbin/sleepwatcher -s /path/to/sleepscript -w /path/to/wakeupscript
El script
#!/bin/sh
osascript -e 'quit app "Mail"'
saldrá de Mail y el script
#!/bin/sh
open -a /Applications/Mail.app $1
lo abrirá. Puede guardarlos como archivos .sh
y hacer referencia a ellos desde sleepwatcher, pero asegúrese de ejecutar chmod +x filename.sh
en ellos antes de intentar ejecutarlos. De lo contrario, OS X no los reconocerá como ejecutables.
Ahora, tienes dos opciones para cargar sleepwatcher: puedes ejecutarlo manualmente, puedes configurar un LaunchAgent para hacerlo. Me gusta este último, así que cree un archivo en /Library/LaunchAgents/
llamado com.custom.mailfix.plist
(el nombre no es importante, pero le recomiendo que mantenga el formato, el "com" y el "plist"). El contenido del archivo debería ser similar al siguiente.
<?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>com.custom.mailfix.plist</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/sbin/sleepwatcher</string>
<string></string>
<string>-s /path/to/sleepscript</string>
<string>-w /path/to/wakescript</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>KeepAlive</key>
<true/>
</dict>
</plist>
Como antes, reemplace las rutas del script por las rutas a sus scripts de shell. Para indicar a OS X que inicie este agente al inicio, ejecute
sudo launchctl load -w /Library/LaunchAgents/com.custom.mailfix.plist