2013-06-12 6 views
9

पर रूट के रूप में एक प्रक्रिया लॉन्च करना मेरा सवाल यह है कि रीबूट के बाद स्वचालित रूप से रूट विशेषाधिकारों के साथ लॉन्च की शुरुआत के साथ MacOSX डिमन प्रक्रिया कैसे करें?मैक ओएसएक्स लॉन्चक्टल बनाना स्टार्टअप

मैं घर के उपयोग के लिए एक एप्लिकेशन लिख रहा हूं जो वेब साइटों तक पहुंच को अवरुद्ध करता है। यह पायथन में लिखा गया है और सूचीबद्ध यूआरएल को अक्षम या सक्षम करने के लिए/ect/hosts फ़ाइल को संशोधित करता है। मुख्य अनुप्रयोग django में है और मैंने एक पायथन मुड़ डाला डिमन बनाया है जो रूट एक्सेस विशेषाधिकारों के रूप में/etc/hosts फ़ाइल के वास्तविक संशोधन की आवश्यकता है।

मैंने एक प्लिस्ट फ़ाइल बनाई है जो एक मामूली समस्या के साथ काम करता है। डिमन प्रक्रिया को रिबूट करने के बाद रूट विशेषाधिकारों के बजाय मेरे सामान्य लॉगऑन विशेषाधिकार हैं।

एक सामान्य काम मेरे सामान्य विशेषाधिकारों के साथ प्रक्रिया को रोकने के लिए है, तो सुडो के साथ प्रक्रिया शुरू करें।

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

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> 

उत्तर

19

तुम गलत निर्देशिका में इस डाल दिया है। LaunchAgents प्रति उपयोगकर्ता चलाने वाली प्रक्रियाएं हैं। सिस्टम प्रक्रिया /Library/LaunchDaemons में जाती है। वे रूट के रूप में चलाए जाते हैं। यदि आप स्टार्टअप पर इसे चलाने के लिए चाहते हैं, तो मैं इसे स्पष्ट करने की अनुशंसा करता हूं:

<key>RunAtLoad</key> 
<true/> 
+0

धन्यवाद रोब। चीयर्स कीथ –