I have an AppleScript or set of Applescripts that I am trying to run as a LaunchDaemon. I have no problem running the LaunchDaemon with my user. The problem comes in where I have the need to read a file that is only readable by root, this is by design for security reasons as the file contains sensitive information.
I have installed the necessary precompiled AppleScript files, the .scpt files, in:
I have put my plists under:
Edit: Here is the plist for my Daemon:
<?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>
Now, when I try to load the plists using launchctl and sudo
sudo launchctl load -w /Library/LaunchDaemons/com.mycompany.myapp.service.plist
I get errors in the systemlog.log:
Aug 26 17:54:13 computername com.apple.xpc.launchd (com.mycompany.myapp.service): Service exited with abnormal code: 1 Aug 26 17:54:13 computername com.apple.xpc.launchd (com.mycompany.myapp.service): Service only ran for 0 seconds. Pushing respawn out by 10 seconds.
However if I drop the "sudo" from the launchctl command it works perfectly. I have even tried running the scripts from the terminal as the root user, which also works fine. However, as soon as I try to load them with launchctl and sudo everything dies.
In order to get this script to run previously I had to give the application running the script accessibility privileges on the machine, so previously Sublime Text 2, Terminal and Script Editor. I am guessing that this what is causing the script to not run but I do not know which program to enable under accessibility, since I am not being prompted. So how do I get this script to run the way I need it to?