Faisant de Mac OSX launchctl lancer un processus en tant que root au démarrage

Ma question est de savoir comment faire un MacOSX processus de démon à l'aide de launchd commencer avec les privilèges de root automatiquement après un redémarrage?

Je suis en train d'écrire une application à usage interne qui bloque l'accès aux sites web. Il est écrit en python et modifie le /ect/hosts pour désactiver ou activer les url répertoriées. L'application principale est dans django et j'ai créé un python tordu démon qui procède à la modification du fichier /etc/hosts en tant que root privilèges d'accès sont nécessaires.

J'ai créé un fichier plist qui fonctionne avec un problème mineur. Après le redémarrage du processus de démon a ma connexion normale privilèges au lieu de les privilèges de root.

Une solution de contournement est d'arrêter le processus avec mes normale privilèges de démarrage du processus avec sudo.

launchctl unload /Library/LaunchAgents/com.balanceinfosystems.socialshields.twisted.plist 
sudo launchctl load /Library/LaunchAgents/com.balanceinfosystems.socialshields.twisted.plist 

Le fichier plist

<?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>

OriginalL'auteur Keith John Hutchison | 2013-06-12