একটি সিস্টেমযুক্ত ইউনিটের জন্য 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}"তবে এটি কেবল লগইন শেলগুলির জন্য কাজ করে।

আমি সমস্ত ব্যবহারকারীর জন্য সেট পাথের দিকে নজর রেখেছি (লগইন এবং অ-লগইন শেলস) তবে সমাধানটি ইতিমধ্যে উপরে চেষ্টা করা হয়েছিল।

আমি সিস্টেমে কীভাবে পাথ যুক্ত করব - ডিবিয়ানে সমস্ত ব্যবহারকারীর নন-লগইন শেল এবং লগইন শেলের জন্য পথের দিকে তাকিয়েছিলাম তবে কোনও গ্রহণযোগ্য সমাধান নেই এবং আমি নিশ্চিত যে আমি কোনও পরিবর্তন করতে চাই /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হবে না কারণ systemd এর প্রসারিত হবে না $PATH


যদি আমি এইভাবে কমান্ডটি আবদ্ধ করি এবং প্রোফাইল.d ফাইলটি ব্যবহার করি (লগইন শেলগুলির জন্য আমিও পথটি যুক্ত করতে চাই) তবে কী আমার এখনও অ্যাসেসটার্টে পথ নির্ধারণ করতে হবে? বা প্রোফাইল.ড থেকে পড়া হবে?
অগ্রজাগ 9

আমি মনে করি আপনার এখনও অ্যাসিস্টার্টে PATH সেট করতে হবে। ল্যাশইন শেল হলে সম্ভবত ব্যাশটি কেবল প্রোফাইল.ডি থেকে পড়তে পারে। আপনি PATH নিষ্পত্তির পরিবর্তে এটি জোর করার --loginআগে যোগ করার চেষ্টা করতে পারেন -cতবে আপনি প্রচুর পরিমাণে সেটআপ তৈরি করবেন যা খালি সিস্টেম সিস্টেমের মধ্যে ভাল কাজ করতে পারে না এবং জার্নাল লগতে আপনাকে ত্রুটি দেয়।
meuh
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.