অন্য ব্যবহারকারীর সিস্টেমড ইউনিট পরিচালনা করা


10

একটি ব্যবহারকারীর, বা সম্ভবত মূল, অন্য ব্যবহারকারীর ব্যবহারকারী স্তর সিস্টেমড পরিষেবাদি নিয়ন্ত্রণ করতে পারে?

আমি চেষ্টা করেছি sudo -u <some user> systemctl --user restart <some service>, কিন্তু এটি সম্পর্কে dbus, অভিযোগ: Failed to get D-Bus connection: Connection refused

উত্তর:


4

আমি যখন ssh এর মাধ্যমে দূরবর্তীভাবে আমার ভেন্টু বাক্সে লগইন করেছি তখন আমারও একই সমস্যা ছিল। আমার ক্ষেত্রে এটি কারণ 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 এ রাখতে পারেন। আমি অনুমান করি .বাশার্কের চেয়ে আরও মার্জিত সমাধান অবশ্যই হবে তবে এটি আপনার ডিস্ট্রোতে নির্ভর করে depends

এখানেই আমি সেই সমাধানটি পেয়েছি।

সম্পাদনা:

রুট হিসাবে লগ ইন, আমি নিম্নলিখিত 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) '/ রান / ইউজার /' পাথে যুক্ত করতে হয়েছিল, তবে আপনি যদি এটি কোনও বাশ স্ক্রিপ্ট থেকে চালাচ্ছেন তবে আপনি instead SUDO_UID ব্যবহার করতে পারেন):

sudo -u username XDG_RUNTIME_DIR="/run/user/1000" DBUS_SESSION_BUS_ADDRESS="unix:path=${XDG_RUNTIME_DIR}/bus" systemctl --user status

1
আমি ঠিক যে আছে /etc/profile.d/dbus.sh। আমি অনুমান করি sudoতাদের শ্বেত তালিকাভুক্ত হওয়া দরকার কারণ এটি ডিফল্টরূপে পরিবেশ সাফ করে। আমি নিশ্চিত না যদিও এটি কেবলমাত্র বর্তমান ব্যবহারকারীর রানটাইম দির স্থানান্তর করবে কিনা।
এমকেইটো
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.