Tôi truy cập vào một máy thông qua nhiều phiên đăng nhập. Thời gian sống của các phiên có thể hoặc không thể trùng nhau. Trong trường hợp của tôi, các phiên đăng nhập này hiện luôn luôn qua SSH, nhưng tôi cũng muốn xử lý các phiên cục bộ.
Đôi khi tôi cần D-Bus trong các phiên này và tôi muốn chia sẻ cùng một phiên D-Bus qua các phiên đăng nhập này, để sử dụng GVFS .
Cách được đề nghị để làm điều này là gì? Tôi không muốn phá vỡ bất kỳ việc sử dụng D-Bus nào mà tôi có thể không biết. Tôi đã cân nhắc sử dụng
export $(dbus-launch --autolaunch $(cat /var/lib/dbus/machine-id))
nhưng (kể từ Ubuntu 12.04) điều này có vẻ không đúng:
- điều này đòi hỏi một phiên X, nhưng các phiên SSH của tôi có thể hoặc không thể chuyển tiếp màn hình X và ngay cả những phiên không giống nhau
$DISPLAY
; - nếu không có màn hình X nào thì
dbus-launch
phàn nàn rằng lỗi Autolaunch: Khởi tạo X11 không thành công. Rằng và không khởi động trình nền; - các
dbus-launch
tiểu bang trang người đàn ông rằng “Các--autolaunch
tùy chọn được coi là một chi tiết thực hiện nội bộ (...). Dù sao đi nữa, không có lý do thực sự để sử dụng nó ngoài việc triển khai libdbus.
Có dbus-launch
hay một công cụ khác trong bộ D-Bus hỗ trợ tự động phát hiện hoạt động dbus-daemon
và kết nối với nó không? Thông tin cần thiết là ~/.dbus/session-bus/$(cat /var/lib/dbus/machine-id)-${DISPLAY#*:}
nếu D-Bus được khởi động với kết nối X, nhưng dường như không được lưu trữ ở bất cứ đâu nếu không có kết nối X.
Tôi có nên tự lắp đặt tệp phiên D-Bus của mình không? Nếu tôi làm, tôi có nên sử dụng một tập tin trong ~/.dbus/session-bus
thư mục? Là con đường /var/lib/dbus/machine-id
đáng tin cậy và di động?