Creé un agente launchd
que abre una imagen de disco dispersa no protegida por contraseña (y monta su volumen solitario) diariamente a las 2:45 AM en preparación para que el software de respaldo escriba en el volumen. El archivo plist del agente launchd
se guarda en ~/Library/LaunchAgents/
. Aquí están los parámetros del archivo plist:
Label: my.DiskImageOpener
KeepAlive: NO
RunAtLoad: NO
StartCalendar:
Hour: 2
Minute: 45
ProgramArguments:
hdiutil
attach
/path/to/MyDiskImage.sparseimage
Mientras la pantalla de la computadora esté activa, el agente funciona como se anuncia, abriendo la imagen del disco y aumentando su volumen a la hora especificada en el agente de inicio. Por otro lado, si la pantalla está inactiva a la hora especificada en el agente de inicio, la imagen del disco no se abre hasta que la pantalla se despierta de la suspensión (incluso varias horas después), momento en el que la imagen del disco se abre inmediatamente. y monta su volumen. El mismo fenómeno ocurre si sustituyo el comando hdiutil attach /path/to/MyDiskImage.sparseimage
con open /path/to/MyDiskImage.sparseimage
, o si coloco el comando en un script de shell ejecutable separado que ejecuta el agente de inicio. Además, aunque la pantalla esté inactiva cuando se produce el problema descrito anteriormente, la computadora está despierta. Además, probé que el agente de inicio ejecutara un script de shell ejecutable ficticio ( echo $(date)
) en lugar de hdiutil
, y se ejecuta normalmente incluso cuando la pantalla está inactiva.
Por lo tanto, parece que el problema se produce específicamente al intentar abrir una imagen de disco desde un agente de inicio launchd
mientras la pantalla del equipo está inactiva. ¿Por qué el estado de activación / desactivación de la pantalla tiene algún efecto al abrir una imagen de disco? ¿Cómo puedo evitar este problema?
Estoy agradecido por cualquier ayuda con este problema desconcertante. (Estoy usando una computadora portátil MacBook Pro con OS X 10.8.2 Mountain Lion.)