No OS X, você deve usar o launchd. Para implementá-lo, vou explicar com um exemplo.
Vá para a pasta /Users/your-username/Library/LaunchAgents
e salve o seguinte arquivo plist. Eu chamei de com.username.testscript.plist
, mas fique à vontade para mudá-lo.
<?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.your-username.testscript</string>
<key>ProgramArguments</key>
<array>
<string>/Users/your-username/bin/testscript.sh</string>
</array>
<key>Nice</key>
<integer>1</integer>
<key>StartInterval</key>
<integer>60</integer>
<key>RunAtLoad</key>
<true/>
<key>StandardErrorPath</key>
<string>/tmp/com.your-username.testscript.err</string>
<key>StandardOutPath</key>
<string>/tmp/com.your-username.testscript.out</string>
</dict>
</plist>
O arquivo é bem autoexplicativo. Ele iniciará o comando /Users/your-username/bin/testscript.sh
a cada 60 segundos, será iniciado no carregamento, salvará erros em /tmp/com.username.testscript.err
e efetuará logon em /tmp/com.username.testscript.out
.
Você também pode usar os diretórios /Library/LaunchAgents/
ou /Library/LaunchDaemos/
.