Je suggère d'utiliser un démon comme SleepWatcher . Une fois que vous avez installé SleepWatcher (réf. Le fichier LISEZ-MOI inclus), vous pouvez exécuter les commandes suivantes.
/usr/local/sbin/sleepwatcher -s /path/to/sleepscript -w /path/to/wakeupscript
Le scénario
#!/bin/sh
osascript -e 'quit app "Mail"'
va quitter Mail, et le script
#!/bin/sh
open -a /Applications/Mail.app $1
va l'ouvrir. Vous pouvez enregistrer ces .sh
fichiers en tant que fichiers et les référencer à partir de sleepwatcher, mais assurez-vous de les exécuter chmod +x filename.sh
avant de les exécuter. Sinon, OS X ne les reconnaîtra pas comme exécutables.
Vous disposez maintenant de deux options pour charger sleepwatcher: vous pouvez l'exécuter manuellement, vous pouvez configurer un LaunchAgent pour le faire. J'aime ce dernier, alors créez un fichier dans /Library/LaunchAgents/
named com.custom.mailfix.plist
(le nom n'a pas d'importance, mais je vous recommande de conserver la mise en forme, le "com" et le "plist"). Le contenu du fichier devrait ressembler à ce qui suit.
<?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>
Comme auparavant, remplacez les chemins de script par ceux de vos scripts shell. Pour indiquer à OS X de lancer cet agent au démarrage, exécutez
sudo launchctl load -w /Library/LaunchAgents/com.custom.mailfix.plist