क्रॉन? Launchd? iCal ??
यदि हां, तो कैसे?
क्रॉन? Launchd? iCal ??
यदि हां, तो कैसे?
जवाबों:
संदर्भ के लिए, सभी 3 विकल्प काम करेंगे। हालांकि iCal विकल्प में अन्य की तुलना में अधिक सीमाएँ हैं।
(क्रोन और लॉन्च के संपादन के लिए GUI हैं जैसा कि अन्य उत्तरों में वर्णित है)
क्रोन सबसे सीधे आगे और अच्छी तरह से जाना जाता है और कई ट्यूटोरियल उपलब्ध हैं। कोल्स नोट्स को नीचे की ओर से अंतिम पंक्ति को अपने क्रॉस्टैब पर जोड़ना होता है (या तो संपादन /etc/crontab
या crontab
कमांड लाइन पर उपयोग करके ):
MM HH DD MM WKD -- Minutes, Hour, Day, Month, Weekday (eg. Sun, Mon)
MM HH * * * USERNAME /PATH/TO/SCRIPT
00 3 * * * chealion /myscript.sh "Runs at 03:00 every day"
मैक ओएस एक्स में, cron
वास्तव में द्वारा प्रतिस्थापित किया गया है, launchd
लेकिन launchd
बैकवर्ड संगत है cron
जिसका अर्थ है कि आप अभी भी उपयोग कर सकते हैं cron
लेकिन यह वास्तव में launchd
सभी काम कर रहा है।
यदि आप उपयोग करना चाहते हैं तो आप launchd
सुपर यूजर के यहाँ भी अन्य प्रश्नों की जाँच करना चाहेंगे: (उदाहरण के लिए मैं रूट कमांड को रूट के रूप में कैसे चलाऊँ? ) जहाँ आप अपनी कॉन्फ़िगरेशन फ़ाइल (प्लिस्ट फ़ाइल) को सहेजना चाहते हैं। जब यह चलता है तो यह निर्भर करता है कि यह किस निर्देशिका में संग्रहीत है और इसे कैसे लोड किया गया है (जैसे। आपने sudo का उपयोग किया है या नहीं) - cron के समान।
एक नमूना दैनिक लॉन्चड प्लिस्ट चलाएं (सुनिश्चित करें कि फ़ाइल और लेबल समान हैं - लेबल के लिए प्लिस्ट माइनस) इस प्रकार है - यह स्क्रिप्ट रोज आधी रात को 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>local.IDENTIFIER_HERE.SOMETHING</string>
<key>KeepAlive</key>
<false/>
<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>StartCalendarInterval</key>
<dict>
<key>Hour</key>
<integer>00</integer>
<key>Minute</key>
<integer>03</integer>
</dict>
</dict>
</plist>
यह भी ध्यान देने योग्य बात है कि लॉन्च किए गए कार्य यदि वे तब निर्धारित किए जाते हैं जब कंप्यूटर सो या बंद होता है, तो वे तब चलेंगे जब कंप्यूटर फिर से उपलब्ध हो जाएगा (इसे चालू करना या इसे जागृत करना) - हालांकि केवल एक बार कोई फर्क नहीं पड़ता कि कितने दिन हो सकते हैं किया गया। संपादित करें: मैं बस एक Apple दस्तावेज़ में था, जिसमें कहा गया था कि यदि मशीन बंद है, तो आप उस दौरान किसी भी लॉन्च की घटनाओं को खो देंगे, (आपकी स्क्रिप्ट स्टार्टअप पर लॉन्च नहीं होगी), (नींद जागने पर स्क्रिप्ट लॉन्च करती है)
एक अन्य विकल्प " एट " ("मैन एट" के साथ मैनुअल पेज की जांच करना) है। स्क्रिप्ट उदाहरण के साथ खुद को पुनर्निर्धारित कर सकती है:
echo "sh $0 $@" | at `date +%H:%M` tomorrow
(हर 10 मिनट इसे चलाने के लिए "कल" के बजाय "+ 10 मिनट" का उपयोग करें; शेड्यूलिंग को रोकने के लिए, अनुसूचित नौकरी आईडी को सूचीबद्ध करने के लिए "-एल" करें और फिर नौकरी निकालने के लिए " -आर आईडी ")
आपको इसके साथ पहले डेमन (अटरुन) शुरू करना होगा (देखें https://superuser.com/a/43680 ):
sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.atrun.plist
लाभ: त्वरित फिक्स, कोई सुडोल / रूट एक्सेस की आवश्यकता, जटिल शेड्यूल पैटर्न को करना आसान है नुकसान: ओएस एक्स (जो लॉन्च किया गया है) के लिए मानक समयबद्धन विधि नहीं
launchd
OS X के नीचे जाने का रास्ता है।
crontab -e
, तो यह आपको एक टर्मिनल-आधारित टेक्स्ट एडिटर में एक फाइल पर छोड़ देगा, जो आपके सेव करते ही आपका पर्सनल कॉन्टैब बन जाएगा।
लॉन्चकंट्रोल लॉन्चड / लॉन्चक्टल के लिए एक और जीयूआई है। जबकि अन्य लोगों द्वारा बताए गए विकल्प दैनिक आधार पर एक स्क्रिप्ट लॉन्च करने में पूरी तरह से सक्षम हैं, लॉन्चकंट्रोल के साथ आप जटिल शेड्यूल को कॉन्फ़िगर कर सकते हैं (जैसे "हर सप्ताह एक बार, सप्ताहांत पर 2 बजे और 8 बजे के बीच")। इसके अलावा यह (AFAIK) एकमात्र उपकरण है जो वास्तव में कार्य को मान्य करता है। यदि कोई नौकरी उम्मीद के मुताबिक काम नहीं करती है तो यह आपको दिखाएगी कि क्यों।
जब तक आप चाहें, तब तक यह कोशिश करने के लिए स्वतंत्र है।
cron
यदि आप इसके लिए गूगल करते हैं तो आपको पर्याप्त ट्यूटोरियल ढूंढने चाहिए ।यह इस बात पर निर्भर करता है कि आप क्या चाहते हैं: iCal स्क्रिप्ट केवल तभी निष्पादित की जाएगी जब आप लॉग इन हैं, cron
स्क्रिप्ट को लॉग इन किए बिना निष्पादित करता है। मुझे नहीं पता कि क्या iCal स्क्रिप्ट को निष्पादित करता है अगर मैक स्क्रिप्ट के समय में बदल गया था। निष्पादित किया गया। cron
यह कर रहा है।
एक अद्यतन: आप ऐसा करने वाले Mac OS X App स्टोर में कुछ ऐप देख सकते हैं:
लिंगोन भी उपलब्ध प्रतीत होता है, इस पर निर्भर करता है कि आप किस ओएस पर चल रहे हैं।
यहाँ एक सरल, नि: शुल्क उपयोगिता है XML उत्पन्न करने के लिए:
http://www.gieson.com/Library/projects/utilities/launcha/
इस उपयोग के साथ, प्रोग्राम स्थापित करने की कोई आवश्यकता नहीं है, बस अपने लाइब्रेरी / LaunchAgents फ़ोल्डर में परिणाम सहेजें।
RunAtStart
तब गलत पर सेट किया गया है (जब तक कि आप इसे सच नहीं चाहते)। मैंने एक घंटे का समय बिताया कि मेरे खोजकर्ता फ्रीज क्यों करेगा और डेस्कटॉप को बूट पर लोड करने से रोक देगा। डिसेबल RunAtStart
शेड्यूल में हस्तक्षेप नहीं करता है।
मैं हमेशा इसके लिए लिंगोन का उपयोग करता हूं , लेकिन ऐसा लगता है कि यह विकास से बाहर है। आप Crontooie की कोशिश कर सकते हैं , लेकिन मैंने इसे व्यक्तिगत रूप से उपयोग नहीं किया है। या बस टर्मिनल में crontab फ़ाइल को संपादित करें।
यदि आप आज़ाद को आज़माना चाहते हैं, तो मैं टस्क टिल डॉन का सुझाव दूंगा
sp@mactop ~ $ crontab -l
*/5 * * * * /usr/local/bin/cinco.sh
sp@mactop ~ $ cat /usr/local/bin/cinco.sh
#!/bin/sh
....cut....
sp@mactop ~ $
... जो भी कमांड-लाइन आप ".... कट ...." के लिए फेंकते हैं, उन्हें हर पांच मिनट में चलाया जाएगा।
30 साल की प्रगति, और 'क्रोन' अभी भी मेरा पसंदीदा शेड्यूलर है।
-सी
यदि कोई कैलेंडर ईवेंट आपकी आवश्यकताओं को पूरा करता है, तो अंतर्निहित ऑटोमैटिक एप्लिकेशन आपको कैलेंडर अलार्म बनाने देता है जो कैलेंडर ईवेंट द्वारा ट्रिगर होते हैं। आप जो चाहते हैं उसे करने के लिए कुछ अंतर्निहित यूआई-आधारित कार्यों का उपयोग कर सकते हैं, या आप इसे कुछ एप्लिकेशन या कस्टम AppleScript, जावास्क्रिप्ट, या शेल स्क्रिप्ट भी चला सकते हैं।