Câu trả lời:
Tôi gặp vấn đề tương tự khi tôi đăng nhập từ xa vào hộp gentoo của mình qua ssh. Trong trường hợp của tôi, điều này là do các biến XDG_RUNTIME_DIR
và DBUS_SESSION_BUS_ADDRESS
môi trường bị thiếu. Chạy các lệnh sau và thử lại:
export XDG_RUNTIME_DIR="/run/user/$UID"
export DBUS_SESSION_BUS_ADDRESS="unix:path=${XDG_RUNTIME_DIR}/bus"
Nếu điều này có ích, bạn có thể đặt các lệnh đó vào .bashrc. Tôi đoán phải có một giải pháp tao nhã hơn .bashrc nhưng điều đó phụ thuộc vào bản phân phối của bạn.
Đây là nơi tôi tìm thấy giải pháp đó.
Biên tập:
đăng nhập với quyền root, tôi quản lý để chạy thành công systemctl --user
như một người dùng khác bằng cách sử dụng su
như sau:
su -c 'XDG_RUNTIME_DIR="/run/user/$UID" DBUS_SESSION_BUS_ADDRESS="unix:path=${XDG_RUNTIME_DIR}/bus" systemctl --user status' username
hoặc sử dụng sudo
(lưu ý, tôi phải thêm rõ ràng người dùng UID (1000) tương ứng vào đường dẫn '/ run / user /', nhưng nếu bạn đang chạy nó từ tập lệnh bash, bạn có thể sử dụng $ SUDO_UID thay thế):
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
. Tôi đoánsudo
cần những danh sách trắng, bởi vì nó mặc định xóa môi trường. Tôi không chắc chắn nếu nó sẽ chỉ chuyển dir thời gian chạy hiện tại của người dùng.