লগইন সেশন জুড়ে ডি-বাস সেশন পুনরায় ব্যবহার করুন


20

আমি একাধিক লগইন সেশনগুলির মাধ্যমে একটি মেশিন অ্যাক্সেস করি। সেশনের জীবনকাল ওভারল্যাপ নাও হতে পারে। আমার ক্ষেত্রে, এই লগইন সেশনগুলি সবসময় এসএসএইচের উপরে থাকে তবে আমি স্থানীয় সেশনগুলিও পরিচালনা করতে পছন্দ করব।

এই সেশনগুলিতে আমার মাঝে মাঝে ডি-বাসের প্রয়োজন হয় এবং আমি জিভিএফএস ব্যবহার করতে এই লগইন সেশনগুলিতে একই ডি-বাস সেশনটি ভাগ করতে চাই ।

এটি করার প্রস্তাবিত উপায় কী? আমি ডি-বাসের এমন কোনও ব্যবহার ভাঙতে চাই না যা সম্পর্কে আমি অবগত নই। আমি ব্যবহার বিবেচনা করেছি

export $(dbus-launch --autolaunch $(cat /var/lib/dbus/machine-id))

তবে (উবুন্টু 12.04 হিসাবে) এটি সঠিক বলে মনে হচ্ছে না:

  • এটির জন্য একটি এক্স সেশনের প্রয়োজন, তবে আমার এসএসএইচ সেশনগুলির এক্স এক্স ফরোয়ার্ড করা হতে পারে বা নাও হতে পারে, এবং এমনকি যেগুলি একই নয় $DISPLAY;
  • যদি কোনও এক্স ডিসপ্লে পাওয়া যায় না, তবে dbus-launchঅভিযোগ করে যে "অটোলেঞ্চ ত্রুটি: এক্স 11 প্রারম্ভিকরণ ব্যর্থ হয়েছে” "এবং কোনও ডেমন শুরু করে না;
  • dbus-launchman পৃষ্ঠা রাজ্যের যে " --autolaunchবিকল্প একটি অভ্যন্তরীণ বাস্তবায়ন বিস্তারিত বিবেচনা করা হয় (...)। এটি কোনওভাবেই libdbus বাস্তবায়নের বাইরে ব্যবহার করার আসল কারণ নেই ”

নেই dbus-launchবা ডিকপ স্যুট সমর্থনে আরেকটি হাতিয়ার স্বয়ংক্রিয়ভাবে একটি চলমান সনাক্ত dbus-daemonএবং এটি সংযোগ? প্রয়োজনীয় তথ্য রয়েছে ~/.dbus/session-bus/$(cat /var/lib/dbus/machine-id)-${DISPLAY#*:}যদি ডিকপ একটি এক্স সংযোগ দিয়ে শুরু হয়, কিন্তু যে কোন জায়গায় সংরক্ষণ করা হলে কোন এক্স সংযোগ উপলব্ধ থাকবে মনে হচ্ছে না।

আমি কি আমার নিজের ডি-বাস সেশন ফাইলটি আবদ্ধ করব? আমি যদি করি, আমি কি ~/.dbus/session-busডিরেক্টরিতে একটি ফাইল ব্যবহার করব ? পথ কি /var/lib/dbus/machine-idনির্ভরযোগ্য এবং বহনযোগ্য?


1
এই উত্তরটি আপনার জন্য একটি সমাধানের অংশ হতে পারে: সার্ভারফ্লট
প্রশ্ন

1
আমি DBus এর সাথে 2 বছর আগে ফিড করছি এবং আমার স্মৃতিতে প্রচুর পড়া থেকে যা কিছু পড়ে রইল, সেই সূত্রগুলিও ছিল: ডিবাস শীতল হতে পারে, তবে এটি সিস্টেমের উদাহরণ হিসাবে একবার চালানোর জন্য উপযুক্ত এবং ঠিক আবার একবার তৈরি হয়েছে tail প্রতিটি স্থানীয় ব্যবহারকারীর সেশনের জন্য যে এটি শীতল পরিবর্তে বোকা। আমার অনুমান যে আপনাকে নিজেরাই করতে হবে। আমি করেছি, তবে আমার সর্বদা এক্স সেশন থাকে তাই এটি আমার পক্ষে একটু সহজ ছিল। শুভকামনা।
বনাঙ্গুইন

আমি বিএলএফএস বইতে স্ক্র্যাচ ছাড়িয়ে লিনাক্স কনফিগারেশন সম্পর্কে কিছু সুন্দর তথ্য দেখেছি ।
ফিজিচ

উত্তর:


6

ডিবিস ডিবিস ডেমনের জন্য সেটিংস ভাগ করে নেওয়া একটু জটিল করে তোলে।

আমার সেটআপের জন্য, থেকে সেটিংসটি dbus-launch --sh-syntaxকোনও ফাইলে সংরক্ষণ করা হয় যা দ্বারা উত্স .bash_rc। এর নেতিবাচক দিকটি হ'ল, প্রতিটি রিবুটের পরে, সেই প্রক্রিয়াটি ম্যানুয়ালি সঞ্চালিত হয়।

তবে বিদ্যমান ডিবিস ডেমনটি পরীক্ষা করা খুব সহজ হওয়া উচিত। আসুন ধরা যাক সেটিংস ফাইলটি $ HOME / .dbus_settings এ রয়েছে:

need_start=1

if [ -r "$HOME/.dbus_settings" ]
then
    . "$HOME/.dbus_settings"
fi

if [ -n "$DBUS_SESSION_BUS_PID" ]
then
    if kill -0 "$DBUS_SESSION_BUS_PID" 2>/dev/null
    then
        need_start=0  # Found one
    fi
fi

if [ "$need_start" -ne 0 ]
then
    dbus-launch --sh-syntax >"$HOME/.dbus_settings"
    . "$HOME/.dbus_settings"
fi

--autolaunchবিকল্প ছাড়া , আমি বিশ্বাস করি না যে একটি এক্স উইন্ডোজ সংযোগ প্রয়োজন needed

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.