2012-04-08 22 views
6

में गैर-शून्य निकास स्थिति देता है मेरे पास एक पाइथन स्क्रिप्ट है जो 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 बनाया सब कुछ काम ... की स्थापना

उत्तर

8

आप stdout के अलावा stderr पर कब्जा करने के लिए इतना है कि आप पता कर सकते वास्तव में क्यों कार्यक्रम है की कोशिश करनी चाहिए नाकाम रहने (यह मानते हुए यह वास्तव में आप के लिए कुछ त्रुटियों को मुद्रित करता है)

cmd = ['/path/to/casperjs', '/path/to/doSomething.js', 'args'] 
response = subprocess.check_output(cmd, 
       shell=True, 
       stderr=subprocess.STDOUT) 
+1

मैं इस के लिए जोड़ देगा कि "इस आदेश कार्यों के लिए सबसे आम कारण है जब मैं इसे मैन्युअल लेकिन नहीं चला क्रॉन/पर्यवेक्षक/नवोदय के तहत/.. "एक पर्यावरण परिवर्तनीय है - हमेशा पाथ नहीं - अलग या मिसिन है जी। – mattbornski

+1

हां, मैं सभी पर्यावरण चरों की जांच कर रहा था, लेकिन 'खोल = गलत' सेटिंग और 'stderr = subprocess.STDOUT' जोड़ रहा हूं और अब सब कुछ जादुई रूप से काम करता है? !! – arboc7

+0

@mattbornski: हां मैं सहमत हूं। इसके या तो, या हो सकता है कि प्रक्रिया को क्रॉन्टाब के रूप में स्थापित किए गए किसी भी उपयोगकर्ता के तहत चलने में परेशानी हो रही हो। मैं बहुत ज्यादा अनुमान लगाने की इच्छा नहीं करता था, बल्कि कोशिश करें और पता लगाएं कि वास्तविक त्रुटि क्या हो सकती है – jdi

संबंधित मुद्दे