Como dice el título, "No se puede salir de la aplicación lanzada a través de launchd" -o más precisamente, yo puede salir de él, pero luego se reinicia automáticamente de nuevo.
Antecedentes : Prefiero usar BusyCal, no iCal, pero hay algunas cosas de calendario que tienen que ser hechas por iCal antes de que BusyCal pueda obtener los resultados. Se me ocurrió crear dos launchd scripts: uno para lanzar iCal cada día a las 5 de la mañana, y otro para salir de él unos minutos después.
Aquí está el plist para lanzar (en ~/Library/LaunchAgents/com.dori.iCalLaunch.plist
):
<?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>KeepAlive</key>
<false/>
<key>Label</key>
<string>com.dori.iCalLaunch</string>
<key>OnDemand</key>
<true/>
<key>ProgramArguments</key>
<array>
<string>/Applications/iCal.app/Contents/MacOS/iCal</string>
</array>
<key>ServiceDescription</key>
<string>iCal Launcher</string>
<key>StartCalendarInterval</key>
<dict>
<key>Hour</key>
<integer>5</integer>
</dict>
</dict>
</plist>
Tenía entendido que no necesitaba el KeepAlive
y OnDemand
llaves, pero las puse de todos modos para tratar de detener el relanzamiento.
Aquí está el plist para salir (en ~/Library/LaunchAgents/com.dori.iCalQuit.plist
):
<?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.dori.iCalQuit</string>
<key>Program</key>
<string>/usr/bin/osascript</string>
<key>ProgramArguments</key>
<array>
<string>osascript</string>
<string>-e</string>
<string>tell application "iCal" to quit</string>
</array>
<key>ServiceDescription</key>
<string>iCal Quitter</string>
<key>StartCalendarInterval</key>
<dict>
<key>Hour</key>
<integer>5</integer>
<key>Minute</key>
<integer>10</integer>
</dict>
</dict>
</plist>
Según mis archivos de registro, ambos se ejecutan sin problemas, pero después de la ejecución de Quit, iCal se reinicia.
¿Alguna idea de cosas para probar, o cosas que podrían estar causando esto?