आवृत्ति को देखते हुए मैं आम तौर पर एक डेमॉन (सर्वर) लिखता हूं जो कि काफी बढ़िया पहुंच के लिए क्रॉन का उपयोग करने की बजाय नौकरी चलाने (यानी sleep()
) के बीच मूर्खता से इंतजार कर रहा है।
यदि आवश्यक हो, तो यूनिक्स/लिनक्स सिस्टम पर आप इसे /etc/inittab
(या प्रतिस्थापन) से चला सकते हैं ताकि यह सुनिश्चित किया जा सके कि यह हमेशा चल रहा है, और प्रक्रिया में स्वचालित रूप से पुनरारंभ होता है या मर जाता है।
जोड़ा गया: (और कुछ अप्रासंगिक सामान निकाला गया)
हमेशा मौजूद (चल रहा है, लेकिन ज्यादातर बेकार) डेमॉन दृष्टिकोण स्क्रिप्ट की समवर्ती उदाहरणों की संभावना को नष्ट करने का लाभ मिलता है की जा रही स्वचालित रूप से क्रॉन द्वारा शुरू किया जा रहा है ।
लेकिन यह आप का क्या मतलब है (है, यानी पिछले एक रन अभी भी चल रहा है, जबकि एक नया ट्रिगर होता है) इस तरह के मामले में के रूप में सही ढंग से समय के प्रबंधन, की एक ओवरलैप है के लिए जिम्मेदार हैं। इससे आपको यह तय करने में मदद मिल सकती है कि फोर्किंग डिमन या गैर-फोर्किंग डिज़ाइन का उपयोग करना है या नहीं। थ्रेड इस परिदृश्य में कोई लाभ नहीं देते हैं, इसलिए उनके उपयोग पर विचार करने की कोई आवश्यकता नहीं है।
यह कई प्रक्रियाओं को चलाने की संभावना को पूरी तरह खत्म नहीं करता है, लेकिन यह कई डिमन्स के साथ एक आम समस्या है। एक सामान्य उदाहरण है कि एक दूसरे उदाहरण को चलाने से रोकने के लिए फ़ाइल पर परस्पर-अनन्य लॉक जैसे सेमफोर का उपयोग करना है। प्रक्रिया समाप्त होने पर फ़ाइल-लॉक स्वचालित रूप से भुला दिया जाता है, इसलिए असामान्य समाप्ति (जैसे बिजली विफलता) के मामले में लॉक के लिए कोई क्लीन-अप आवश्यक नहीं है।
एक दृष्टिकोण Fcntl मॉड्यूल का उपयोग कर, और एक O_EXCL
ध्वज (या O_RDWR | O_CREAT | O_EXCL
) के साथ एक पर्ल sysopen
का उपयोग कर given by Greg Bacon था। केवल एक ही अंतर जो मैं करता हूं वह सिसोपेन कॉल में विशेष लॉकिंग को जोड़ता है (यानी मैंने सुझाए गए झंडे का उपयोग करें), और फिर अनावश्यक flock
कॉल को हटा दें। ओह, और मैं यूनिक्स (& लिनक्स एफएचएस) फ़ाइल-सिस्टम और /var/run/daemonname.pid
के नामकरण सम्मेलनों का पालन करता हूं।
एक अन्य दृष्टिकोण डीजेबी के daemontools या similar का उपयोग कार्य को "डिमननाइज़" करने के लिए करना होगा।
आप किस मंच के बारे में बात कर रहे हैं? * Nix? – weismat
यह लिनक्स –
पर चलाएगा http://blog.booking.com/highlander-daemons-without-daemons.html – stu42j