Você nem precisa de launchctl load -w
. Se você salvar este plist como /Library/LaunchAgents/test.plist
e pertencer a root, ele deverá ser carregado automaticamente no login:
<?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>test</string>
<key>ProgramArguments</key>
<array>
<string>say</string>
<string>a</string>
</array>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
Quando tentei salvar outro plist como esse na biblioteca do usuário, os comandos say se sobrepuseram.
Se LimitLoadToSessionType estiver definido como LoginWindow, o programa será executado quando a janela de login gráfica for mostrada:
<key>LimitLoadToSessionType</key>
<string>LoginWindow</string>
No entanto, ele não é executado se o login automático estiver ativado.