J'ai créé un agent launchd
qui ouvre une image disque sparse non protégée par mot de passe (et monte son volume solitaire) quotidiennement à 2h45 en préparation pour que le logiciel de sauvegarde écrive sur le volume. Le fichier plist de l'agent launchd
est enregistré dans ~/Library/LaunchAgents/
. Voici les paramètres du fichier plist :
Label: my.DiskImageOpener
KeepAlive: NO
RunAtLoad: NO
StartCalendar:
Hour: 2
Minute: 45
ProgramArguments:
hdiutil
attach
/chemin/vers/MyDiskImage.sparseimage
Tant que l'écran de l'ordinateur est allumé, l'agent fonctionne comme prévu, ouvrant l'image disque et montant son volume à l'heure spécifiée dans l'agent de lancement. En revanche, si l'écran est en veille à l'heure spécifiée dans l'agent de lancement, l'image disque ne s'ouvre pas tant que l'écran n'est pas réveillé (même si cela se produit plusieurs heures plus tard), à ce moment-là l'image disque s'ouvre immédiatement et monte son volume. Le même phénomène se produit si je remplace la commande hdiutil attach /chemin/vers/MyDiskImage.sparseimage
par open /chemin/vers/MyDiskImage.sparseimage
, ou si je place la commande dans un script shell exécutable séparé que l'agent de lancement exécute. De plus, même si l'écran est en veille lorsque le problème décrit ci-dessus se produit, l'ordinateur lui-même est allumé. J'ai également testé le fait que l'agent de lancement exécute un script shell exécutable bidon (echo $(date)
) au lieu de hdiutil
, et cela s'exécute normalement même lorsque l'écran est en veille.
Il semble donc que le problème survient spécifiquement lors de la tentative d'ouverture d'une image disque à partir d'un agent de lancement launchd
lorsque l'écran de l'ordinateur est en veille. Pourquoi l'état de veille ou d'éveil de l'écran a-t-il un impact sur l'ouverture d'une image disque ? Comment puis-je contourner ce problème ?
Je vous remercie pour toute aide concernant ce problème déroutant. (J'utilise un ordinateur portable MacBook Pro sous OS X 10.8.2 Mountain Lion.)