একটি জিনিস যা সম্পর্কে আপনি ভুল করছেন তা হ'ল /etc/environment
পুনরায় লোড করার জন্য একটি রিবুট দরকার। এটি ভুল। পিএএম স্ট্যাক সক্রিয় করা হলে - কেবলমাত্র ফাইলটি পড়ার সময় লগইন করা হয় - বিশেষত pam_env.so
, যা ফাইলটি পড়ে।
লগ আউট এবং পিছনে ফিরে আসা পরিবর্তনগুলি প্রয়োগ করবে - এবং আপনি যদি আপনার সমস্ত প্রক্রিয়া নতুন পরিবেশ পেতে চান তবে আপনাকে অবশ্যই এটি করতে হবে । অন্যান্য সমস্ত "সমাধান" 2 কেবলমাত্র একক শেল প্রক্রিয়াতে পরিবেশ প্রয়োগ করবে, কিন্তু নতুন টার্মিনাল উইন্ডো সহ জিইউআইয়ের মাধ্যমে আপনি যে কিছু চালু করবেন তা নয়। 1
আপনি যে সঙ্গে জরিমানা হন, তাহলে যদিও - অভাব export
কমান্ড সহ জন্য ক্ষতিপূরণ করা যেতে পারে set -a
এবং set +a
। যাইহোক, এটি এখনও একটি দুর্বল উপায় হিসাবে ফাইলটি কোনও উদ্ধৃতি ব্যবহার করে না। তবে এটি ভাল কাজ করা উচিত:
while read -r env; do export "$env"; done
1 জিনোম সেশন ম্যানেজার তার নিজস্ব পরিবেশ পরিবর্তন করার একটি উপায় সরবরাহ করে তবে কেবল Initialization
পর্বের সময় :
$ gdbus call -e -d org.gnome.SessionManager \
-o /org/gnome/SessionManager \
-m org.gnome.SessionManager.Setenv \
"FOO" "bar"
Error: GDBus.Error:org.gnome.SessionManager.NotInInitialization: Setenv
interface is only available during the Initialization phase
2 gdb
কোনও সমাধান নয়, তবে এটি কখনও কখনও ব্যবহার করা যেতে পারে। তুমি তোমার সেশন ম্যানেজার (যেমন চলমান প্রসেস এটি জোড়া আছে gnome-session
), আপনার উইন্ডো ম্যানেজার (যেমন gnome-shell
অথবা openbox
), আপনার টাস্কবারে / প্যানেল যদি থাকে (যেমন xfce4-panel
), এবং সাধারণত অন্য কিছু সম্ভবত কাপড় চালানো হবে। এই প্রতিটি প্রক্রিয়াটির জন্য, আপনাকে gdb
এটি পিআইডি দ্বারা সংযুক্ত করতে হবে, এটি putenv()
ব্যবহার করে ফাংশনটি শুরু করতে হবে p
, তারপরে ব্যবহার করে বিচ্ছিন্ন করুন q
:
$ sudo gdb -p $(pidof gnome-session)
GNU gdb (GDB) 7.7.1
[...]
Attaching to process 718
[...]
0x00007fc2cefed81d in poll () from /usr/lib/libc.so.6
(gdb) p putenv("FOO=bar")
$1 = 0
(gdb) p putenv("BAZ=qux")
$2 = 0
(gdb) q
A debugging session is active.
Quit anyway? (y or n) y
Detaching from program: /usr/bin/gnome-session, process 718
নোট করুন যে ডিবাগারটি প্রক্রিয়াটিকে বিরতি দেয়, সুতরাং আপনাকে অবশ্যই অন্য কোনও টিটি (ভার্চুয়াল কনসোল) বা এসএসএইচ ওভার উইন্ডো পরিচালকদের সংমিশ্রণের সাথে সংযুক্ত করতে হবে, অন্যথায় স্ক্রীনটি হিমশীতল হয়ে যাবে।
এটি ছাড়াও, আপনার dbus-daemon দ্বারা ব্যবহৃত পরিবেশ আপডেট করা উচিত:
$ dbus-update-activation-environment --systemd FOO=bar BAZ=qux
পুরানো সিস্টেমগুলির জন্য:
$ gdbus call -e -d org.freedesktop.DBus \
-o /org/freedesktop/DBus \
-m org.freedesktop.DBus.UpdateActivationEnvironment \
"{'FOO': 'bar', 'BAZ': 'qux'}"
()
for line in $( cat /etc/environment ) ; do export $line ; done
ফাইল ফর্ম্যাটটি ব্যবহার করতে পারেনkey=value
।