What's the easiest way to have a script run at boot time in OS X?
I want a script (bash/zsh/ruby/...) to run at boot time in OS X. What's the most simple way to do this, without messing with xml/plist files, and preferably not needing to make a meta AppleScript.
MacOS X uses Vixie cron, which has special meta tags for launching at reboot time. See the man page for the file format.
something like:
@reboot /path/to/script.sh
in your crontab would work. I'm not sure that this a better solution than launchd, you probably have more meta tools that look at launchd than cron.
In case you change your opinion:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.superuser.245713</string>
<key>ProgramArguments</key>
<array>
<string>/path/to/script.sh</string>
</array>
<key>UserName</key>
<string>someuser</string>
</dict>
</plist>
Store as com.superuser.245713.plist
in /Library/LaunchAgents/
and make root:wheel
the owner/group.
There are also Login Hooks if you would prefer the script to run (as root) when a user logs in rather than when the machine is booted.
Here is an example which provides a briefer explanation about them: How to run a script at login/logout in OS X?