2009-05-28 37 views
9

चला रहा है यदि मेरे पास हर 10 मिनट चलने वाली क्रॉन नौकरी है और किसी कारण से नौकरी चलाने के लिए 12 मिनट लगते हैं, तो मेरे कोड का एक और उदाहरण शुरू हो जाएगा जबकि पिछले एक अभी भी चल रहा है? यदि हां, तो आप इसे लिनक्स पर कैसे रोक सकते हैं?क्रॉन जॉब

उत्तर

10

हाँ, यह होगा।

आपको अपना प्रोग्राम एक .pid फ़ाइल बनाना चाहिए (उदाहरण के लिए/var/run /) में। जब यह शुरू होता है, तो यह जांचना चाहिए कि क्या ऐसी फ़ाइल पहले से मौजूद है और यदि ऐसा है तो बाहर निकलें।

आप कौन सी प्रोग्राम/स्क्रिप्ट चल रहे हैं?

+0

मैं एक PHP स्क्रिप्ट चला रहा हूँ मेल भेजने के लिए। –

+0

इस तरह कुछ ऐसा चाल करेगा http://www.dreamincode.net/code/snippet2407.htm – MartinodF

+0

क्या आप हमें यह कैसे करना है इस पर एक स्निपेट दिखा सकते हैं? – oneofakind

3

हां। नियत अंतराल पर एक प्रक्रिया को बंद कर देगा, भले ही कोई पिछला पूरा नहीं हुआ हो।

आप touch फ़ाइल कर सकते हैं, जैसा कि किसी अन्य उत्तर में बताया गया है, और अपनी प्रक्रिया को शामिल करने से पहले इसके अस्तित्व की जांच करें।

या आप की जांच कर सकता है एक "उदाहरण" पहले से ही चल रहा है प्रक्रिया सूची देखने के लिए:

ps -ef | grep *your_script_name* | grep -v grep | wc -l 
संबंधित मुद्दे