I'm trying to run a startup AppleScript, and a AppleScript which run at a set time (I hate the automator / calendar approach)
on idle
set currentTime to current date
if the weekday of currentTime is (need to do for Tuesday to Saturday) then
do shell script "kextunload /System/Library/Extensions/AppleHDA.kext " password "..." with administrator privileges
end if
--only check once a day
return 24 * 60 * 60
end idle
the only issue with this approach is the script it's running all the time, using memory and also I'm not sure how to calculate the correct time yet. (24.60.60 is every 00:00 right?) I would like to run it at 05 AM
if I understand it right, adding the script.scpt to /Library/LaunchDaemons will make the script run all the time even if the user is logged out, or logging with the screensaver on right?
I read about a another approach with seems even better, basically using a Plist to launch a script at a set time.
PS : would all this work if the disk is encrypted ? and can I use AppleScript to log an user at boot with the screen off (or discreetly)so I can start open some apps without have security issues.
Can I have your help and advises about which approach is the best one?
Many thanks in advance.
Best Answer
You can run a command at start-up with a launchd plist looking something like this, in /Library/LaunchDaemons
To run at a defined time, use something like this (this runs Monday, 1am):
LaunchD has a lot of options regarding how the jobs can run - it can watch and keep processes running, run when networks or files are present, etc.
It looks like you need to define your requirements, then work out how to implement the jobs.
Not below, the command string is a single string. If you want to pass arguments, you can, with multiple string tags.