नहीं चल रहा है मुझे हर मिनट एक पायथन स्क्रिप्ट (job.py) चलाने की आवश्यकता है। यह स्क्रिप्ट शुरू नहीं होनी चाहिए यदि यह पहले से चल रहा है। इसका निष्पादन समय 10 सेकंड और कई घंटों के बीच हो सकता है।क्रॉन के साथ पाइथन स्क्रिप्ट चलाना केवल
तो मैं अपने crontab में डाल दिया:
* * * * * root cd /home/lorenzo/cron && python -u job.py 1>> /var/log/job/log 2>> /var/log/job/err
स्क्रिप्ट शुरू कर जब यह पहले से ही चल रहा है से बचने के लिए, मैं झुंड का उपयोग()।
import fcntl
import time
import sys
def doIncrediblyImportantThings():
for i in range (100):
sys.stdout.write ('[%s] %d.\n' % (time.strftime ('%c'), i))
time.sleep (1)
if __name__ == '__main__':
f = open ('lock', 'w')
try: fcntl.lockf (f, fcntl.LOCK_EX | fcntl.LOCK_NB)
except:
sys.stderr.write ('[%s] Script already running.\n' % time.strftime ('%c'))
sys.exit (-1)
doIncrediblyImportantThings()
यह दृष्टिकोण काम करने के लिए लगता है:
यह स्क्रिप्ट (job.py) है।
क्या मुझे कुछ भी याद आ रही है? क्या इस दृष्टिकोण का उपयोग करने में कोई समस्या है जो मैं चला सकता हूं?
क्या इस व्यवहार को प्राप्त करने के लिए अधिक सलाह दी गई है या "उचित" तरीके हैं?
मैं किसी भी सुझाव के लिए धन्यवाद।
ग्रेट सवाल। – erjoalgo