Hier mal zur Dokumentation ein Beispiel, wie man ein Programm zur boot Zeit als root ausführen lassen kann.
Mein konkretes Problem: Ich benutze tinc als Lösung, um alle meine Rechner via VPN zu verbinden. Ich würde gerne zur Boot Zeit folgendes Kommando ausführen
/usr/local/sbin/tincd -n dziadzka.netUnter MacOS erstelllt man hierzu eine plist Datei im XML format und kopiert sie nach /Library/LaunchDaemons.
Konkret lege ich eine Datei /Library/LaunchDaemons/net.dziadzka.tincd.plist mit dem folgende Inhalt
<?xml version="1.0" encoding="UTF-8"?>Im wesentlichen ist das eine 3-elementige property liste mit den werten
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>KeepAlive</key>
<true/>
<key>Label</key>
<string>net.dziadzka.tincd</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/sbin/tincd</string>
<string>-n</string>
<string>dziadzka.net</string>
<string>-D</string>
</array>
</dict>
</plist>
Label: net.dziadzka.tincd
KeepAlive: true
ProgrammArguments: ["/usr/local/sbin/tincd", "-n", "dziadzka.net", "-D"]
KeepAlive == true heist, dass sich der Launchd darum kümmert, das Programm nach unfreiwilliger beendigung neu zu starten. Deswegen auch das zusätzliche Argument "-D" für den tincd, damit der sich nicht in den Hintergrund verabschiedet.