Usando o cron, você pode editar o crontab do superusuário com por exemplo EDITOR=nano sudo crontab -e
. Quando tentei adicionar uma linha como * * * * * say aa
, o comando say foi executado mesmo depois de eu sair da janela de login.
Usando o launchd, salve uma lista de propriedades como esta, por exemplo /Library/LaunchAgents/test.plist
:
<?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>test</string>
<key>ProgramArguments</key>
<array>
<string>say</string>
<string>bb</string>
</array>
<key>StartInterval</key>
<integer>10</integer>
</dict>
</plist>
Em seguida, execute sudo chown root /Library/LaunchAgents/test.plist
e sudo launchctl load /Library/LaunchAgents/test.plist
. O comando say agendado pelo launchd também foi executado quando eu efetuei o logout na janela de login.