at(1) on OS X
I recently came across the at(1)
command, and wondered why it wasn’t executing jobs I gave it on my machine. Had a poke around the man pages, and discovered in atrun(8)
that by default launchd(8)
has the atrun
entry disabled.
To enable it (and have at
jobs fire) you simply need to run the following command once:
sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.atrun.plist
Personally I’ve taken to using this to sleep my machine after a custom amount of time, mainly because my alarm clock/sleep timer of choice (Awaken) can’t handle playing Spotify for x minutes and then sleeping the machine. The following command puts the machine to sleep, which (quite effectively) silences spotify.
echo "osascript -e 'tell app \"Finder\" to sleep'" | at 1:00am
See the at(1)
manpage for how to specify the time, but as I’m only ever scheduling it on the same day (usually 20 minutes or so in advance), just passing the time works fine.