मेरे पास एक लॉन्चड डेमन है ~/Library/LaunchAgents
जो मावेरिक्स में अच्छी तरह से काम करता है। लेकिन यह Yosemite सार्वजनिक बीटा में शुरू नहीं होगा। डेमन प्लिस्ट इस प्रकार है (मेरा उपयोगकर्ता नाम darksair
UID 501 के साथ है)
<?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>org.darksair.retrmail</string>
<key>ProgramArguments</key>
<array>
<string>/Users/darksair/bin/retrmail.py</string>
</array>
<key>KeepAlive</key>
<false/>
<key>StartInterval</key>
<integer>300</integer>
<key>LaunchOnlyOnce</key>
<false/>
<key>UserName</key>
<string>darksair</string>
<key>ProcessType</key>
<string>Standard</string>
<key>EnvironmentVariables</key>
<dict>
<key>PATH</key>
<string>/Users/darksair/Python/bin:/Users/darksair/Python3/bin:/Users/darksair/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin</string>
</dict>
<key>StandardOutPath</key>
<string>/Users/darksair/logs/retrmail.log</string>
<key>StandardErrorPath</key>
<string>/Users/darksair/logs/retrmail.log</string>
</dict>
</plist>
मूल रूप से इसे ~/bin/retrmail.py
हर 5 मिनट में चलाना चाहिए ।
मैं ध्यान देता हूं कि योसेमाइट में लॉन्च 2.0 में अपग्रेड किया गया है, और लॉन्चक्टल में नए कमांड हैं। मैंने कोशिश की
sudo launchctl kickstart user/501/org.darksair.retrmail
और यह कहा
Could not find service "org.darksair.retrmail" in domain for uid: 501
मैंने पुराने स्कूल की भी कोशिश की
sudo launchctl load ~/Library/LaunchAgents/retrmail.plist
और यह कहा
/Users/darksair/Library/LaunchAgents/retrmail.plist: Path had bad ownership/permissions
फ़ाइल मेरे और कर्मचारी समूह के स्वामित्व में है। मैंने एक ही त्रुटि के साथ 644 और 600 दोनों की अनुमति की कोशिश की।
तो क्या कोई जानता है कि योसेमाइट में लॉन्च डेमॉन को ठीक से कैसे फायर किया जाए?
अद्यतन: लगता है जैसे मेरी लॉन्च एजेंट फ़ाइल का स्वामित्व होना चाहिए root:wheel
। चांस लेने के बाद मैंने कोशिश की
sudo launchctl load ~/Library/LaunchAgents/retrmail.plist
और इसने कोई त्रुटि जारी नहीं की। और मुझे लगता है कि मेरा बहरापन ठीक से चल रहा है। मैं इस प्रश्न को खुला छोड़ दूंगा क्योंकि मुझे याद है कि लॉन्च किए गए दस्तावेज़ में स्पष्ट रूप से कहा गया है कि लॉन्च एजेंट फ़ाइल का स्वामित्व उपयोगकर्ता के पास हो सकता है।
UPDATE2: नहीं यह ठीक से नहीं चल रहा था। यह केवल एक बार चला, लेकिन फिर से नहीं, जैसे कि यह अनलोड किया गया था।
UPDATE3: मैंने योसेमाइट सार्वजनिक बीटा 3 में अपग्रेड किया, और अपने एजेंट को इसमें बदल दिया
<?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>org.darksair.retrmail</string>
<key>ProgramArguments</key>
<array>
<string>/Users/darksair/bin/retrmail.py</string>
</array>
<key>StartInterval</key>
<integer>300</integer>
<key>UserName</key>
<string>darksair</string>
<key>EnvironmentVariables</key>
<dict>
<key>PATH</key>
<string>/Users/darksair/Python/bin:/Users/darksair/Python3/bin:/Users/darksair/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin</string>
</dict>
<key>StandardOutPath</key>
<string>/Users/darksair/logs/retrmail.log</string>
<key>StandardErrorPath</key>
<string>/Users/darksair/logs/retrmail.log</string>
</dict>
</plist>
मैंने इस एजेंट को पुनः लोड किया, और मुझे लगता है कि अब यह ठीक से काम कर रहा है। मैं अभी भी इस सवाल को खुला छोड़ रहा हूं क्योंकि मुझे नहीं पता कि मेरे पिछले हिस्से में क्या खराबी है।
अंत में, जो मैंने पाया वह मुझे root:wheel
लोड करने के लिए प्लिस्ट के मालिक को बदलना है।