Meine Frage ist, wie man einen MacOSX Daemon-Prozess mit Launchd Start mit Root-Berechtigungen automatisch nach einem Neustart machen?Mac OSX starten launchctl startet einen Prozess als root beim Start
Ich schreibe eine Anwendung für In-House-Verwendung, die den Zugriff auf Websites blockiert. Es ist in Python geschrieben und ändert die Datei/ect/hosts, um aufgelistete URLs zu deaktivieren oder zu aktivieren. Die Hauptanwendung ist in Django und ich habe einen Python-Twisted-Daemon erstellt, der die eigentliche Änderung der/etc/hosts-Datei vornimmt, da Root-Zugriffsrechte erforderlich sind.
Ich habe eine Plist-Datei erstellt, die mit einem kleinen Problem funktioniert. Nach dem Neustart hat der Daemon-Prozess meine normalen Anmeldeberechtigungen anstelle von root-Rechten.
Eine Problemumgehung besteht darin, den Prozess mit meinen normalen Berechtigungen zu stoppen und dann den Prozess mit sudo zu starten.
launchctl unload /Library/LaunchAgents/com.balanceinfosystems.socialshields.twisted.plist
sudo launchctl load /Library/LaunchAgents/com.balanceinfosystems.socialshields.twisted.plist
Die plist Datei
<?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>com.balanceinfosystems.socialshields.twisted</string>
<key>Program</key>
<string>/source/social_shields/social_shields_twisted.py</string>
<key>KeepAlive</key>
<true/>
</dict>
</plist>
Dank Rob. Prost Keith. –