अन्य उत्तरों के अलावा, विशेष रूप से @soulcake द्वारा पोस्ट किया गया लिंक: यदि आप बहुत कम अंतराल के साथ एक लंबे समय तक चलने वाले कमांड को शेड्यूल करते हैं, तो क्रोन खुशी से दूसरे को पहले पूरा होने से पहले निष्पादित करेगा (जब तक कि कमांड में किसी प्रकार का म्यूटेक्स लागू नहीं होता है) ।
यह अक्सर मूल आदेश को और भी धीमा कर देता है, जिससे पिछले उदाहरणों को पूरा होने से पहले चलाया जा रहा है, या यह अन्य कारणों से अवांछनीय हो सकता है।
सामान्य तरीके से रोकने के लिए एक गार्ड के साथ कमांड चलाने की शर्त है जो यह सुनिश्चित करता है कि एक पिछली कमांड नहीं चल रही है। उदाहरण के लिए:
10 * * * * pgrep my_slow_command >/dev/null || /usr/local/bin/my_slow_command
सुनिश्चित करें कि pgrep कमांड के नाम से मेल खाता है, जब यह चलता है, उदाहरण के लिए अजगर स्क्रिप्ट में निष्पादन योग्य के नाम के रूप में अजगर है, जो संभवत: विशिष्ट नहीं है और आपको अजगर के स्क्रिप्ट नाम के साथ भी मेल खाना होगा।
10 * * * * pgrep -f my_script.py || /usr/local/bin/my_script.py
(pgrep बिना '-f' विकल्प बैश स्क्रिप्ट नामों से मेल खाता है, हालांकि)
यदि आप किसी कारण से pgrep का उपयोग नहीं कर सकते हैं:
10 * * * * ps ax | grep [m]y_command || /usr/local/bin/my_command
ब्रैकेट का उपयोग grep कमांड के मिलान से बचने के लिए किया जाता है।