यह एक भ्रामक विषय हो सकता है क्योंकि क्रोन के विभिन्न कार्यान्वयन हैं। इसके अलावा कई कीड़े थे जिन्होंने इस सुविधा को तोड़ दिया, और कुछ उपयोग के मामले भी हैं जहां यह बस काम नहीं करेगा, खासकर यदि आप शटडाउन / बूट बनाम रिबूट करते हैं।
कीड़े
डेटापॉइंट # 1
डेबियन में ऐसा ही एक बग यहां कवर किया गया है, जिसका शीर्षक है: क्रोन: @reboot जॉब नहीं । ऐसा लगता है कि इसने उबंटू में भी रास्ता बना लिया है, जिसकी मैं सीधे पुष्टि नहीं कर सकता।
डेटापॉइंट # 2
उबंटू में बग के साक्ष्य इस एसओ क्यू एंड ए शीर्षक में यहां पुष्टि किए गए प्रतीत होंगे: @reboot cronjob निष्पादित नहीं कर रहा है ।
अंश
टिप्पणी # 1: .... 3) crond का आपका संस्करण @reboot का समर्थन नहीं कर सकता है क्या आप vix के crond का उपयोग कर रहे हैं? ... crontab -l -u उपयोगकर्ता के परिणाम दिखाएं
टिप्पणी # 2: ... यह क्रोन के @reboot के एक विशिष्ट संस्करण पर निर्भर होने के बजाय इसे एक init स्क्रिप्ट के रूप में स्थापित करने के लिए एक अच्छा विचार हो सकता है।
टिप्पणी # 3: ... @MarkRoberts ने रिबूट को हटा दिया और 1 * * * * को संशोधित करके, * / 1 * * * * तक कर दिया, समस्या हल हो गई! मैं rep pts मार्क कहाँ भेजूँ? धन्यवाद!
उस प्रश्न और उत्तर में स्वीकृत उत्तर में भी यह टिप्पणी थी:
मुझे लगता है लुबंटू @Reboot क्रोन सिंटैक्स का समर्थन नहीं करता है।
अतिरिक्त सबूत
डेटापॉइंट # 3
अतिरिक्त सबूत के रूप में यह धागा था कि कोई एक ही चीज का प्रयास कर रहा था और निराश हो रहा था कि यह काम नहीं किया। इसका शीर्षक है: धागा: क्रोन - @reboot काम नहीं कर रहा है ।
अंश
पुन :: क्रॉन - @reboot काम नहीं कर रहा है
Ceallred ने लिखा है: पोस्ट देखें यह मुझे मार रहा है ... आवरण स्क्रिप्ट की कोशिश की। रनिंग मैन्युअल रूप से लॉग फ़ाइल उत्पन्न करता है ... रिबूट करना और कार्य लॉग फ़ाइल को चलाना या बनाना नहीं है।
Syslog दिखाता है कि CRON ने काम चलाया ... लेकिन फिर से, कोई आउटपुट नहीं है और प्रक्रिया नहीं चल रही है। Jul 15 20:07:45 रेवेनविंग क्रोन [1026]: (CRON) INFO (रनिंग @reboot जॉब्स) Jul 15 20:07:45 रेवेनविंग CRON [1053]: (ceallred) CMD (/ home / ceallred / Scripts / run_spideroak)। sh> /home/ceallred/cripts/SpiderOak.log 2> और 1 &)
ऐसा लगता है जैसे क्रोन @reboot कमांड को पसंद नहीं करता .... कोई अन्य विचार?
ठीक है ... आंशिक रूप से हल किया गया। मैं इसे हल के रूप में चिह्नित करूँगा और नए मुद्दे के साथ एक नया सूत्र शुरू करूँगा .....
मुझे लगता है कि जवाब था कि मेरा एन्क्रिप्टेड होम डायरेक्टरी माउंट नहीं किया गया था जब CRON स्क्रिप्ट (होम / उपयोगकर्ता नाम / स्क्रिप्ट में संग्रहीत) चलाने की कोशिश कर रहा था। / Usr / लिपियों में चले गए और नौकरी उम्मीद के मुताबिक चलती है।
इसलिए अब यह एक स्पिरोडैक मुद्दा प्रतीत होता है। प्रक्रिया शुरू होती है, लेकिन जब तक बूट प्रक्रिया समाप्त हो जाती है, तब तक यह समाप्त हो जाता है। मैं किसी कारण के लिए एक दुर्घटना का अनुमान लगा रहा हूं .... उस बारे में पूछने के लिए नया धागा।
पूरी सहायताके लिए शुक्रिया!
एक बार यह ऊपर के उपयोगकर्ता को अपने मुद्दे का पता चल गया कि वह @reboot
एक उपयोगकर्ता के crontab प्रविष्टि से बाहर काम करने में सक्षम था ।
मुझे पूरी तरह से यकीन नहीं है कि उबंटू पर क्रोन के किस संस्करण का उपयोग किया जाता है, लेकिन यह इंगित करने के लिए प्रतीत होगा कि उपयोगकर्ता @reboot
भी उपयोग कर सकता है, या कि क्रॉन के बाद के संस्करणों में बग को कुछ बिंदु पर तय किया गया था।
डेटापॉइंट # 4
मैंने CentOS 6 पर निम्न परीक्षण किया और यह काम कर गया।
उदाहरण
$ crontab -l
@reboot echo "hi" > /home/sam/reboot.txt 2>&1
मैंने तब सिस्टम को रिबूट किया।
$ sudo reboot
रिबूट के बाद।
$ cat reboot.txt
hi
रास्ते ले लो
- यह सुविधा सिस्टम और उपयोगकर्ता crontab प्रविष्टियों दोनों के लिए समर्थित लगती है।
- आपको यह सुनिश्चित करना होगा कि यह आपके विशेष डिस्ट्रो और / या क्रोन पैकेज के संस्करण में समर्थित / काम कर रहा है।
अधिक जानकारी के लिए कि @reboot
मैं इस ब्लॉग पोस्ट के लिए वास्तविक तंत्र कैसे काम करता हूं, जो कि अंतरंगों पर चर्चा करता है। इसका शीर्षक है: @reboot - सरल क्रोन जादू की व्याख्या करना ।
डिबगिंग क्रोनड
crond
आरएचईएल / सेंटोस / फेडोरा आधारित डिस्ट्रोस पर इस कॉन्फ़िगरेशन फ़ाइल में निम्नलिखित जोड़कर आप क्रिया को बदल सकते हैं ।
$ more crond
# Settings for the CRON daemon.
# CRONDARGS= : any extra command-line startup arguments for crond
CRONDARGS="-L 2"
मान्य स्तर 0, 1, या 2 हैं। इस फ़ाइल को वापस करने के लिए यह डिफ़ॉल्ट लॉगिंग स्तर है बस "-L 2"
जब आप स्थिति को डीबग कर रहे हों तो हटा दें ।