Tengo un AppleScript o conjunto de Applescripts que estoy tratando de ejecutar como un LaunchDaemon. Yo no tengo ningún problema al ejecutar el LaunchDaemon con mi usuario. El problema viene cuando tengo la necesidad de leer un archivo que sólo es legible por la root, esto es por diseño, por razones de seguridad como el archivo contiene información confidencial.
He instalado el necesario precompilado AppleScript archivos, el .scpt archivos, en:
/Library/Scripts/myApplication/
He puesto mi plists en:
/Library/LaunchDaemons
Editar: Aquí está el plist para mi Demonio:
<?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.mycompany.myapp.service</string>
<key>KeepAlive</key>
<true/>
<key>RunAtLoad</key>
<true/>
<key>ProgramArguments</key>
<array>
<string>/usr/bin/osascript</string>
<string>/Library/Scripts/myApp/myApp.scpt</string>
</array>
</dict>
Ahora, cuando trato de cargar el plists utilizando launchctl y sudo
sudo launchctl load -w /Library/LaunchDaemons/com.mycompany.myapp.service.plist
Obtengo errores en la systemlog.registro:
Aug 26 17:54:13 computername com.apple.xpc.launchd[1] (com.mycompany.myapp.service[74757]): Service exited with abnormal code: 1
Aug 26 17:54:13 computername com.apple.xpc.launchd[1] (com.mycompany.myapp.service): Service only ran for 0 seconds. Pushing respawn out by 10 seconds.
Sin embargo, si me cae el "sudo" de la launchctl comando funciona perfectamente. Incluso he tratado de ejecutar las secuencias de comandos desde la terminal como usuario root, que también funciona bien. Sin embargo, tan pronto como intento cargar con launchctl y sudo todo muere.
Con el fin de obtener esta secuencia de comandos para ejecutar previamente tuve que dar a la aplicación que se ejecuta la secuencia de comandos de accesibilidad de los privilegios en la máquina, por lo que previamente Sublime Text 2, Terminal y Editor de secuencias de Comandos. Supongo que esto es lo que está causando que el script no se ejecuta, pero no sé que programa para habilitar en la accesibilidad, ya que yo no soy de los que se le pregunte. Así que ¿cómo puedo obtener este script para que se ejecute de la manera que yo necesito?