में गैर-शून्य निकास स्थिति देता है मेरे पास एक पाइथन स्क्रिप्ट है जो CasperJS कार्यों की श्रृंखला का प्रबंधन करती है और परिणाम को संसाधित करती है। यह कमांड लाइन से अच्छी तरह से चलाता है, लेकिन जब मैं क्रॉन में स्क्रिप्ट चलाने, मैं त्रुटि मिलती है:पायथन सबप्रोसेस क्रॉन
CalledProcessError: Command '['/path/to/casperjs', '/path/to/doSomething.js', 'args']' returned non-zero exit status 1
अजगर में, मैं फोन CasperJS:
response = subprocess.check_output(['/path/to/casperjs', '/path/to/doSomething.js', 'args'], shell=True)
मैं के रूप में shell=False
और Popen
की कोशिश की है अच्छा, लेकिन मुझे एक ही परिणाम मिलता है। मैंने पूरे आदेश को एक स्ट्रिंग (सूची के बजाय) बनाने का भी प्रयास किया, लेकिन इससे कोई मदद नहीं मिली।
चल रहा है '/path/to/casperjs /path/to/doSomething.js args'
खोल में चलाते समय निकास कोड 0 देता है।
मैंने अपने क्रॉन्टाब में PATH=/usr/bin:/bin:/sbin:/usr/local/bin
भी कोई फायदा नहीं हुआ है। (जैसा कि this question में सुझाया गया है।)
कोई विचार क्यों मुझे क्रॉन में केवल यह त्रुटि मिल रही है? धन्यवाद!!
संपादित करें: नीचे जवाब के अनुसार, shell=False
और stderr=subprocess.STDOUT
बनाया सब कुछ काम ... की स्थापना
मैं इस के लिए जोड़ देगा कि "इस आदेश कार्यों के लिए सबसे आम कारण है जब मैं इसे मैन्युअल लेकिन नहीं चला क्रॉन/पर्यवेक्षक/नवोदय के तहत/.. "एक पर्यावरण परिवर्तनीय है - हमेशा पाथ नहीं - अलग या मिसिन है जी। – mattbornski
हां, मैं सभी पर्यावरण चरों की जांच कर रहा था, लेकिन 'खोल = गलत' सेटिंग और 'stderr = subprocess.STDOUT' जोड़ रहा हूं और अब सब कुछ जादुई रूप से काम करता है? !! – arboc7
@mattbornski: हां मैं सहमत हूं। इसके या तो, या हो सकता है कि प्रक्रिया को क्रॉन्टाब के रूप में स्थापित किए गए किसी भी उपयोगकर्ता के तहत चलने में परेशानी हो रही हो। मैं बहुत ज्यादा अनुमान लगाने की इच्छा नहीं करता था, बल्कि कोशिश करें और पता लगाएं कि वास्तविक त्रुटि क्या हो सकती है – jdi