Wednesday 15 June 2011

linux - Ubuntu cron shebang not working -


मेरे पास इस के साथ एक स्क्रिप्ट है जैसे शेबांग #! / Usr / bin / env नोड

जब क्रोन मेरी स्क्रिप्ट चलाता है, तो मुझे यह त्रुटि मिलती है / usr / bin / env: node: ऐसा कोई फ़ाइल या निर्देशिका नहीं।

जब मैं स्क्रिप्ट मेरे उपयोगकर्ता के रूप में स्क्रिप्ट ठीक चलती है, क्रोन के रूप में नहीं। मैं इसे अनुमान लगा रहा हूँ क्योंकि नोड उपयोगकर्ता के पैथ पर नहीं है जो क्रोन चलाता है?

मैं इस शेबांग को क्रॉन के साथ कैसे काम करूं?

$ जो नोड मुझे /home/myuser/.nvm/v0.11.14/bin/node

देता है

क्रोन नौकरियां एक सीमित वातावरण में चलती हैं। इंटरैक्टिव शेल में, आपका $ PATH शायद आपके $ HOME / .bash_profile या $ HOME / .bashrc में सेट किया गया है। क्रोन जॉब्स एक ऐसी वातावरण में निष्पादित होती हैं, जो उन फ़ाइलों को नहीं खिसकाती है, इसलिए आपका उपयोगकर्ता-विशिष्ट $ PATH सेटिंग्स उपलब्ध नहीं होंगी।

आप देख सकते हैं कि कैसा वातावरण दिखता है अस्थायी रूप से एक क्रॉन्टाब प्रविष्टि बनाकर जैसे:

  * * * * * * * प्रिंटनव & gt; Crontab-environment  

आप अपने crontab में स्पष्ट रूप से $ PATH सेट कर सकते हैं, या तो कमांड में ही:

  * * * * * पाथ = $ पैट: / होमे / मैयूसर / एनएनएम / v0.11.14 / बीबी /   

या अपने कॉन्टैबैब में एक अलग पंक्ति में:

  PATH = /usr/bin:/bin:/home/myuser/.nvm/v0.11.14/bin  

आप (सीधे) सामान्य PATH = $ का उपयोग नहीं कर सकते हैं पैठ: / new / dir वाक्यविन्यास को एक वातावरण सेटिंग पंक्ति में अपने $ PATH में डालने के लिए, क्योंकि इस तरह की पंक्ति में चर संदर्भों की जगह नहीं होती है

स्क्रिप्ट में ही पथ,

  #! / Usr / bin / env नोड  

से

  #! /home/myuser/.nvm/v0.11.14/bin/node  

आपको इसे प्रत्येक सिस्टम के लिए कस्टमाइज़ करने की आवश्यकता होगी जहां नोड को किसी भिन्न में स्थापित किया गया है जगह। या आप नोड (या nodejs ?) को सुसंगत स्थान पर स्थापित करने की व्यवस्था कर सकते हैं।


No comments:

Post a Comment