एक सिस्टम यूनिट के लिए PATH सेट करें


13

CentOS 7 में गैर-लॉगिन गोले के लिए PATH कैसे सेट करता है?

विशेष रूप से, मेरे पास एक प्रणाली इकाई है जिसमें बायनेरिज़ की आवश्यकता होती है /usr/local/texlive/2016/bin/x86_64-linux

मैंने इसे अंदर स्थापित करने का प्रयास /etc/environmentकिया PATH=/usr/local/texlive/2016/bin/x86_64-linux:$PATHलेकिन तब मेरा पेटीएम था /usr/local/texlive/2016/bin/x86_64-linux:$PATH:/usr/local/sbin:/usr/sbin

मैंने बनाया /etc/profile.d/texlive.sh, export PATH="/usr/local/texlive/2016/bin/x86_64-linux:${PATH}"लेकिन केवल लॉगिन गोले के लिए काम किया।

मैंने सभी उपयोगकर्ताओं के लिए सेट पथ को देखा (लॉगिन और गैर-लॉगिन शेल) लेकिन समाधान पहले से ही ऊपर का प्रयास किया गया था।

मैंने देखा कि कैसे सभी उपयोगकर्ताओं के गैर-लॉगिन शेल और डेबियन पर लॉगिन शेल के लिए $ PATH को सिस्टम में शामिल करने के लिए एक रास्ता है, लेकिन कोई स्वीकृत समाधान नहीं है और मुझे यकीन नहीं है कि मैं संशोधित करना चाहता हूं /etc/login.defsक्योंकि यह अपडेट में बदल सकता है।

जवाबों:


17

सबसे सरल उत्तर सिस्टम यूनिट फ़ाइल में PATHआपकी ExecStartकमांड के हिस्से के रूप में सेट करना है । उदाहरण के लिए, यदि आपके पास वर्तमान में है

ExecStart=/bin/mycmd arg1 arg2

फिर इसे बदल दें

ExecStart=/bin/bash -c 'PATH=/new/path:$PATH exec /bin/mycmd arg1 arg2'

$PATHवसीयत का विस्तार व्यवस्था से होगा, व्यवस्था से नहीं। Environment=PATH=/new/path:$PATHसिस्टम का उपयोग नहीं होने से विकल्प जैसे कि काम नहीं करेंगे $PATH


यदि मैं इस तरह से कमांड को लपेटता हूं और profile.d फाइल का उपयोग करता हूं (मुझे लॉगिन शेल के लिए जोड़ा गया रास्ता भी चाहिए), तो क्या मुझे अभी भी ExecStart में पथ सेट करना होगा? या कि प्रोफाइल से पढ़ा जाएगा।
अग्रज

मुझे लगता है कि आपको अभी भी ExecStart में PATH को सेट करना होगा। अगर यह एक लॉगिन शेल है तो bash शायद केवल profile.d से पढ़ेगा। आप PATH को व्यवस्थित करने के बजाय इसे लागू करने --loginके -cलिए बाध्य करने से पहले जोड़ने का प्रयास कर सकते हैं , लेकिन आप बहुत सारे सेटअप चलाएंगे जो नंगे सिस्टमड वातावरण में अच्छी तरह से काम नहीं कर सकते हैं, और आपको जर्नल लॉग में त्रुटियां दे सकते हैं।
मयूह
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.