launchdDaemons ( /Library/LaunchDaemonsया /System/Library/LaunchDaemons) को रूट के रूप में चलाता है , और चाहे उपयोगकर्ता लॉग इन हों या न हों, उन्हें चलाएंगे। लॉन्च एजेंटों ( /Library/LaunchAgents/या ~/Library/LaunchAgents/) जब कोई उपयोगकर्ता है कि उपयोगकर्ता के रूप में लॉग ऑन है चलाए जा रहे हैं। डेमॉन पर स्क्रिप्ट चलाने वाले उपयोगकर्ता को बदलने के लिए आप सेतु का उपयोग नहीं कर सकते। /Systemनिर्देशिका मैक ओएस एक्स कार्यों के लिए आरक्षित है तो मैं अपने डालने की सलाह देते हैं launchdया तो में plists /Libraryया ~/Libraryफ़ोल्डर के रूप में यह समझ में आता है।
यदि आप एक एजेंट या डेमॉन बना रहे हैं तो पहला कदम यह निर्धारित करना है।
दूसरा चरण आपकी .plistफ़ाइल बनाने का है । आप इसकी मदद करने के लिए या अपने पसंदीदा पाठ संपादक का उपयोग करने के लिए लिंगोन जैसे GUI- आधारित कार्यक्रमों का उपयोग कर सकते हैं :
.plistहर घंटे एक स्क्रिप्ट चलाने के लिए एक नमूना ( StartIntervalया StartIntervalCalendarहम जो कुंजी चाहते हैं - StartIntervalएक आइटम के लिए हर xसेकंड के लिए, StartIntervalCalendarएक विशिष्ट समय और / या तारीख के लिए। सुपर यूज़र पर 126907 देखें उदाहरण के लिए मैंने StartCalendarInterval के साथ बनाया है):
<?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>local.IDENTIFIER_HERE.SOMETHING</string>
<key>OnDemand</key>
<true/>
<key>RunAtLoad</key>
<false/>
<key>UserName</key>
<string>USERNAME HERE</string>
<key>Program</key>
<string>/PATH/TO/SCRIPT</string>
<key>ProgramArguments</key>
<array>
<string>Argument_1</string>
<string>Argument_2</string>
</array>
<key>StartInterval</key>
<integer>3600</integer>
</dict>
</plist>
.plistअपनी स्क्रिप्ट को इंगित करने के लिए आवश्यक और किसी भी तर्क को आवश्यक रूप से संशोधित करें (तर्क अलग-अलग लाइनों पर हैं) और फ़ाइल को लेबल मान के समान नाम के साथ सहेजें लेकिन .plistअंत में। (उदाहरण के लिए, के local.my-mac.flickrstatsरूप में सहेजा जाएगा local.my-mac.flickrstats.plist)। यदि आप पहले से नहीं है, तो डेमन बनाते समय उस .plistफ़ाइल को स्थानांतरित करें /Library/LaunchDaemons(हर समय चलाता है) या ~/Library/LaunchAgents(केवल आप लॉग इन हैं) या /Library/LaunchAgents(कोई भी उपयोगकर्ता लॉग इन है)।
वह काम शुरू करने के लिए जिसे आप launchctlफ़ाइल लोड करने के लिए आवश्यक चलाना चाहते हैं । में आइटम के लिए /Library, आपको sudo का उपयोग करना चाहिए: उदाहरण के लिए,sudo launchctl load -w /PATH/TO/PLIST
संदर्भ के लिए सुपर यूजर पर निम्नलिखित प्रश्नों को भी देखें: रूट के रूप में लॉन्च कमांड , एक सिस्टम वाइड डेमॉन लोड करें , और मुझे हर दिन चलाने के लिए एक स्क्रिप्ट कैसे मिल सकती है