पिछली नौकरियों को चलाने से एटीडी को कैसे रोकें?


9

डेमन में एक महान उपकरण है! हालाँकि, यदि कोई नौकरी सुबह 8:00 बजे के लिए निर्धारित की जाती है और उस समय मशीन बंद है, तो जब भी मशीन बूट होगी, तब नौकरी चलेगी। अगर मैं काम करना चाहता हूं तो समय बीतने पर उसे काम करने से रोकें। मैंने मैन पेज खोजे हैं, और ऑनलाइन, लेकिन या तो कोई उत्तर नहीं है या मुझे एक नहीं मिला। मैं आर्क का उपयोग कर रहा हूं, लेकिन जहां तक ​​मुझे पता है कि वितरण में बहुत समान है।

किसी भी प्रकार की मदद की बेहद सराहना की जाती है!

जवाबों:


7

नौकरी पिछले कार्य कब बनती है? यदि आप 7:59:50 पर सिस्टम को चालू करते हैं और atडेमॉन शुरू होता है 8:00:01, तो क्या नौकरी निष्पादित होनी चाहिए? क्या होगा अगर डेमन 7:59:59 से शुरू होता है, लेकिन इसकी सभी फाइलों को पढ़ने में दो सेकंड लगते हैं?

आप तय करें! समय की जांच के साथ अपना काम शुरू करें, और यदि समय बीत चुका है तो गर्भपात करें।

export execute_by_date=$(date +%s 'tomorrow 8:01')
at tomorrow 8:00
[ "$(date +%s)" -le "$execute_by_date" ] || exit
do_stuff
␄

2

आप एक init-script लिख सकते हैं जो सभी को बंद या रिबूट पर नौकरियों को रद्द कर देती है।

मैं आर्क-लिनक्स के बारे में निश्चित नहीं हूं - क्या /etc/sysconfig/atऐसा ही कुछ है? शायद यह सिर्फ एक विन्यास-स्विच है जिसे आपको पलटना है ...


मुझे लगता है कि यह सबसे अच्छा समाधान है, शुरू atहोने से पहले बूट पर कतार को फ्लश करें at
भामत

यह वही है जो मुझे उम्मीद है / संभव होना चाहिए! दुर्भाग्य से /etc/sysconfig/आर्क में कोई निर्देशिका नहीं है ... और मैन पेजों में सूचीबद्ध फ़ाइलों में से कोई भी फाइल कॉन्फ़िगर नहीं है।
एल्मर

@Elmer मैं अभी थोड़ा गुगली हुआ और आर्च लाइनक्स के बारे में पढ़ा। '/etc/rc.d/atd ’वहां के एटम-डेमॉन के लिए init-script लगती है। अगर आप इसे किसी कॉन्फिग-फाइल को पार्स करते हुए देख सकते हैं तो वहां एक नज़र रखें। यदि आप भाग्यशाली नहीं हैं, तो आपको अपनी खुद की init-script (जैसे नाम atclearऔर इसे पहले चलाएं atd) के लिए जाना होगा।
निल्स

2

मेरा वोट cronडेमॉन के लिए है।

यदि आपको इसे दिन के विशिष्ट समय में चलाने की आवश्यकता है, लेकिन प्रत्येक दिन एक ही समय में नहीं, तो मैं एक निष्पादन समय के साथ प्रति दिन एक प्रविष्टि के साथ एक कॉन्टैब बनाऊंगा:

से लिए गए कुछ उदाहरण crontab(5):

# run five minutes after midnight, every day
5 0 * * *       command
# run at 2:15pm on the first of every month
15 14 1 * *     command
# run at 10 pm on weekdays
0 22 * * 1-5    command

0

आप जो चाहते हैं वह क्रोन डेमॉन है। यह वही करता है जो आप चाहते हैं।

क्रोन डेमॉन के लिए आपको पसंदीदा खोज इंजन फ़ीड और आपके पास मैनुअल और निर्देशों का एक गुच्छा है। man cronऔर man crontabभी मददगार है।


मदद के लिए धन्यवाद, लेकिन क्रोन मेरी समस्या के लिए काम नहीं करता है। मुझे दिन के विशिष्ट समय में स्क्रिप्ट चलाने की आवश्यकता है, लेकिन प्रत्येक दिन एक ही समय पर नहीं।
एल्मर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.