मेरे पास इस के साथ एक स्क्रिप्ट है जैसे शेबांग #! / 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