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
Vous devez vous connecter pour publier un commentaire.
Vous l'ai mis dans le mauvais répertoire. LaunchAgents sont les processus par utilisateur. Processus du système d'aller dans
/Library/LaunchDaemons
. Ils sont à exécuter en tant que root. Si vous voulez que cela s'exécuter au démarrage, je recommande de rendre explicite avec:OriginalL'auteur Rob Napier