launchd
Daemons ( /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
संदर्भ के लिए सुपर यूजर पर निम्नलिखित प्रश्नों को भी देखें: रूट के रूप में लॉन्च कमांड , एक सिस्टम वाइड डेमॉन लोड करें , और मुझे हर दिन चलाने के लिए एक स्क्रिप्ट कैसे मिल सकती है