Como se indica en el título, "No se puede salir de la aplicación iniciada a través de launchd", o más precisamente, puedo dejar , pero luego se reinicia automáticamente.
Antecedentes : prefiero usar BusyCal, no iCal, pero hay algunas cosas que debe hacer en iCal antes de que BusyCal pueda obtener los resultados. Pensé que crearía dos scripts launchd: uno para lanzar iCal todos los días a las 5 am, y otro para salir unos minutos después.
Esta es la lista de inicio (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>
Entendí que no necesitaba las teclas KeepAlive
y OnDemand
, pero las puse de todos modos para intentar detener el relanzamiento.
Aquí está la lista 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 bien, pero después de que Quit se ejecute, iCal se reinicia.
¿Alguna idea sobre qué cosas probar o qué podría estar causando esto?