Escribí un pequeño script para actualizar automáticamente mi ubicación de red en función de un par de condiciones, y lo combiné con una plist de inicio para que se ejecute cada dos minutos.
Sin embargo, he notado que mi plist de lanzamiento no parece cargarse cuando mi computadora se reinicia. Mi plist está adentro ~/Library/LaunchDaemons
y es bastante simple:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.davedelong.location-updater</string>
<key>Program</key>
<string>/path/to/my/location_updater.rb</string>
<key>StartInterval</key>
<integer>180</integer>
</dict>
</plist>
Mi LaunchDaemons
carpeta tiene los 700
permisos esperados y ejecutar launchctl load
con mi plist hace que las cosas funcionen bien. Es solo que cuando reinicio, no se carga.
Tenía la impresión de que todo ~/Library/LaunchDaemons
estaba ~/Library/LaunchAgents
cargado automáticamente por launchd. ¿No es este el caso? Si este es el caso (y creo que lo es), ¿por qué no se carga mi plist?
~/Library/LaunchDaemons
no es una ubicación válida ni para los agentes de lanzamiento ni para los demonios de lanzamiento. Estás malinterpretando la terminología. Los LaunchDaemons son procesos de todo el sistema, mientras que los LaunchAgents se ejecutan por usuario. Desde la página man de launchd:
~/Library/LaunchAgents Per-user agents provided by the user.
/Library/LaunchAgents Per-user agents provided by the administrator.
/Library/LaunchDaemons System-wide daemons provided by the administrator.
/System/Library/LaunchAgents Per-user agents provided by Mac OS X.
/System/Library/LaunchDaemons System-wide daemons provided by Mac OS X.
Mueve tu plist a ~/Library/LaunchAgents
, y debería funcionar.
Dave DeLong