जब मैं दूरस्थ रूप से ssh के माध्यम से अपने gentoo बॉक्स में लॉग इन करता था तो मुझे यही समस्या थी। मेरे मामले में ऐसा इसलिए था क्योंकि पर्यावरण XDG_RUNTIME_DIR
और DBUS_SESSION_BUS_ADDRESS
पर्यावरण चर गायब थे। निम्नलिखित कमांड चलाएँ और पुनः प्रयास करें:
export XDG_RUNTIME_DIR="/run/user/$UID"
export DBUS_SESSION_BUS_ADDRESS="unix:path=${XDG_RUNTIME_DIR}/bus"
यदि यह मदद करता है, तो आप उन आदेशों को अपने .bashrc में डाल सकते हैं। मुझे लगता है कि .bashrc की तुलना में अधिक सुरुचिपूर्ण समाधान होना चाहिए, लेकिन यह आपके डिस्ट्रो पर निर्भर करता है।
यहाँ है जहाँ मैं उस समाधान पाया।
संपादित करें:
रूट के रूप में लॉग इन किया, मैं systemctl --user
एक अन्य उपयोगकर्ता के su
रूप में निम्नानुसार सफलतापूर्वक चलाने में कामयाब रहा :
su -c 'XDG_RUNTIME_DIR="/run/user/$UID" DBUS_SESSION_BUS_ADDRESS="unix:path=${XDG_RUNTIME_DIR}/bus" systemctl --user status' username
या प्रयोग sudo
(ध्यान दें, मुझे संबंधित उपयोगकर्ताओं को यूआईडी (1000) को पथ '/ रन / उपयोगकर्ता /' में जोड़ना था, लेकिन यदि आप इसे bash स्क्रिप्ट से चला रहे हैं, तो आप इसके बजाय $ SUDO_UID का उपयोग कर सकते हैं):
sudo -u username XDG_RUNTIME_DIR="/run/user/1000" DBUS_SESSION_BUS_ADDRESS="unix:path=${XDG_RUNTIME_DIR}/bus" systemctl --user status
/etc/profile.d/dbus.sh
। मुझे लगता है किsudo
उन लोगों को श्वेतसूची की आवश्यकता है, क्योंकि यह डिफ़ॉल्ट रूप से पर्यावरण को साफ करता है। मुझे यकीन नहीं है कि यह सिर्फ वर्तमान उपयोगकर्ता के रनटाइम डायर को स्थानांतरित कर देगा।