2009-03-01 20 views
11

मैंने एक ऐसी स्क्रिप्ट लिखी है जो solr से डेटा प्राप्त करती है, जिसके लिए निर्दिष्ट अवधि के भीतर तारीख है, और मैं दैनिक क्रॉन के रूप में स्क्रिप्ट चलाता हूं।मैं cronjob/crontab के लिए टाइमआउट कैसे बढ़ा सकता हूं?

समस्या यह है कि cronjob कार्य को पूरा नहीं करता है। यदि मैं मैन्युअल रूप से स्क्रिप्ट चलाता हूं (एक ही समय अवधि के लिए), यह अच्छी तरह से काम करता है। यदि मैं निर्दिष्ट समय अवधि को कम करता हूं, तो स्क्रिप्ट क्रॉन से भी चलती है। तो मेरा अनुमान है कि स्क्रिप्ट चलाने के दौरान cronjob समय समाप्त हो रहा है प्रक्रिया करने के लिए बहुत अधिक डेटा है।

मैं cronjob के लिए टाइमआउट कैसे बढ़ा सकता हूं?

पीएस - 1. मैं जो स्क्रिप्ट क्रोनबॉज में चल रहा हूं वह एक बैश स्क्रिप्ट है जो एक पायथन लिपि चलाती है।

उत्तर

5

आप स्क्रिप्ट चलाने से पहले cronjob में ulimit -t [सेकंड की संख्या] का उपयोग करने का प्रयास कर सकते हैं।

18

ध्यान दें कि ulimit -t समाधान सुझाए गए CPU समय की मात्रा को सीमित करेगा, न कि वास्तविक समय की राशि।

bash मैनपेज से:

ulimit [-HSTabcdefilmnpqrstuvx [limit]] 
... 
-t  The maximum amount of cpu time in seconds 

और अधिक महत्वपूर्ण बात, क्रॉन पहली जगह में किसी भी समय समाप्ति लागू नहीं करता। यह बस जो भी प्रक्रिया और आगे बढ़ता है उसे बंद कर देता है।


बीटीडब्ल्यू: इसे उत्तर के रूप में पोस्ट करने के लिए खेद है, लेकिन मेरे पास अभी तक टिप्पणियां जोड़ने के लिए पर्याप्त अंक नहीं हैं।

संबंधित मुद्दे