CasperJS görevlerini yöneten ve sonucu işleyen bir Python komut dosyasına sahibim. Bu komut satırından iyi çalışır, ancak ben cron komut dosyası çalıştırdığınızda, ben hata alıyorum:Python Subprocess sıfır olmayan çıkış durumunu yalnızca cron olarak döndürür
CalledProcessError: Command '['/path/to/casperjs', '/path/to/doSomething.js', 'args']' returned non-zero exit status 1
Python, ben çağırır CasperJS: Ben shell=False
ve Popen
çalıştılar
response = subprocess.check_output(['/path/to/casperjs', '/path/to/doSomething.js', 'args'], shell=True)
iyi, ama aynı sonucu elde ediyorum. Ayrıca tüm komutu bir dize (liste yerine) yapmaya çalıştım, ama bu da işe yaramadı.
Çalıştırma '/path/to/casperjs /path/to/doSomething.js args'
, kabukta çalışırken çıkış kodu 0'ı döndürür.
Ayrıca crontab'ım için PATH=/usr/bin:/bin:/sbin:/usr/local/bin
ekledim. (this question'da önerildiği gibi.)
Neden bu hatayı yalnızca bu hatayı cron'a alıyorum? Teşekkürler!!
DÜZENLEME: shell=False
ve stderr=subprocess.STDOUT
yapılan şey çalışmak ... ayarı aşağıda cevabını uyarınca,
(gerçekten sizin için bazı hatalar yazdırmak gelmez varsayarak) ben cron/yöneticisi/sonradan görme altında elle ancak çalıştırmak "Bu komut işleri için en yaygın nedeni/.. "bir ortam değişkeni - her zaman değil PATH - farklı veya missin g. – mattbornski
Evet, tüm ortam değişkenlerini kontrol ettim, ancak 'shell = False 'ayarlandı ve' stderr = subprocess.STDOUT' eklendi ve şimdi her şey büyülü çalışıyor mu? – arboc7
@mattbornski: Kabul ediyorum. Ya bu, ya da belki de süreç, crontab'ın ayarlandığı kullanıcı tarafından çalışmakta zorlanıyor. Çok fazla spekülasyon yapmak istemedim, ama gerçek hatanın ne olabileceğini bulmaya çalışıyorum. – jdi