Creé un archivo plist (ver más abajo) y lo pegué en / Library / LaunchDaemons /. (Inicia un virtualbox a través de un script que ejecuta VBoxHeadless.) Puedo iniciar el plist como usuario "nobody"
sudo -u nobody launchctl load /Library/LaunchDaemons/org.somename.plist
y funciona bien (launchctl list | grep -i org.somename). pero no se recoge solo al arrancar.
<dict>
<key>Label</key> <string>org.somename</string>
<key>Disabled</key> <false/>
<key>RunAtLoad</key> <true/>
<key>KeepAlive</key> <false/>
<key>LaunchOnlyOnce</key> <true/>
<key>ProgramArguments</key>
<array>
<string>/Users/someuser/somename.sh</string>
<string>restart</string>
</array>
</dict>
y este plist es chown 600 y chmod root. además somename.sh dice
#!/bin/sh
/usr/bin/VBoxHeadless -s somevm
¿Qué me podría estar perdiendo?
¿Existe una lista de verificación completa paso a paso en algún lugar de lo que se necesita para ejecutar un programa en el momento del arranque? Recuerdo los "buenos viejos tiempos" en los que insertaba un comando en /etc/rc.local, y simplemente funcionaba ...