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.
Asked
Active
Viewed 2.1k times
3 Answers
7
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.
Rich Homolka
- 32,350
6
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.
Daniel Beck
- 111,893
2
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?