Saya mengakses mesin melalui beberapa sesi login. Masa hidup sesi mungkin atau mungkin tidak tumpang tindih. Dalam kasus saya, sesi login ini saat ini selalu melebihi SSH, tetapi saya lebih suka menangani sesi lokal juga.
Saya kadang-kadang membutuhkan D-Bus dalam sesi ini, dan saya ingin berbagi sesi D-Bus yang sama di seluruh sesi login ini, untuk menggunakan GVFS .
Apa cara yang disarankan untuk melakukan ini? Saya tidak ingin menghentikan penggunaan D-Bus yang mungkin tidak saya sadari. Saya sudah mempertimbangkan menggunakan
export $(dbus-launch --autolaunch $(cat /var/lib/dbus/machine-id))
tetapi (pada Ubuntu 12.04) ini sepertinya tidak benar:
- ini memerlukan sesi X, tetapi sesi SSH saya mungkin atau mungkin tidak meneruskan tampilan X, dan bahkan yang tidak memiliki yang sama
$DISPLAY
; - jika tidak ada tampilan X yang tersedia,
dbus-launch
komplain bahwa “Kesalahan pelepasan otomatis: inisialisasi X11 gagal.” dan tidak memulai daemon; - yang
dbus-launch
menyatakan halaman manual bahwa”--autolaunch
pilihan dianggap sebagai detail implementasi internal yang (...). Tidak ada alasan nyata untuk menggunakannya di luar implementasi libdbus. ”
Apakah dbus-launch
atau alat lain dalam D-Bus suite mendukung secara otomatis mendeteksi running dbus-daemon
dan menghubungkannya? Informasi yang diperlukan adalah ~/.dbus/session-bus/$(cat /var/lib/dbus/machine-id)-${DISPLAY#*:}
jika D-Bus dimulai dengan koneksi X, tetapi tampaknya tidak disimpan di mana pun jika tidak ada koneksi X tersedia.
Haruskah saya membuat file sesi D-Bus saya sendiri? Jika saya melakukannya, haruskah saya menggunakan file di ~/.dbus/session-bus
direktori? Apakah jalurnya /var/lib/dbus/machine-id
dapat diandalkan dan portabel?
Jawaban:
DBus membuat berbagi pengaturan untuk dabus dbus sedikit rumit.
Untuk pengaturan saya, pengaturan dari
dbus-launch --sh-syntax
disimpan dalam file yang sumbernya oleh.bash_rc
. Kelemahan dari ini adalah, setelah setiap reboot, proses itu dilakukan secara manual.Namun, harus sangat sederhana untuk memeriksa daemon DBus yang ada. Katakanlah file pengaturan adalah di $ HOME / .dbus_settings:
Tanpa
--autolaunch
opsi, saya tidak percaya koneksi X windows diperlukan.sumber