আমি মনে করি যে এখানে বর্তমানে উপস্থাপিতগুলির চেয়ে ভাল সমাধান আমি পেয়েছি। অংশ হিসাবে আমি যতদূর বলতে পারি সিজিম্যানেজারটি মারা গেছে, কিছুটা কারণ আমার সমাধানটি হ্যাকি কাজের মতো মনে হয় না, তবে বেশিরভাগ কারণ সমস্যার সমাধানের সন্ধানের সময় এই আলোচনাটি এখনও প্রদর্শিত হয়। এটি আসলে বেশ সহজ: সিস্টেমড ইউজার মোড ব্যবহার করুন ।
মঞ্জুরিপ্রাপ্ত যদি আপনি সিস্টেমযুক্ত না ব্যবহার করেন তবে এই সমাধানটি সাহায্য করবে না। সেক্ষেত্রে আমি আপনাকে পরামর্শ দিচ্ছি যে আপনার থ্রিম সিস্টেমে অপ্রত্যাশিত ব্যবহারকারীদের বুটে সার্ভিস চালানোর অনুমতি দেওয়ার কোনও উপায় আছে এবং এটি একটি বিন্দু হিসাবে ব্যবহার করুন।
অপ্রতিযুক্ত এলএক্সসি পাত্রে স্বস্টার্ট করতে সিস্টেমড ব্যবহারকারী মোড ব্যবহার করা হচ্ছে
আমি ধরে নিচ্ছি আপনার কাছে অপ্রতিযুক্ত এলএক্সসি কনটেইনারগুলি সঠিকভাবে কাজ করছে এবং যেটি ধারকটির lxc-autostartব্যবহারকারীর কাজ হিসাবে চলছে running যদি তা হয় তবে নিম্নলিখিতগুলি করুন:
~/.config/systemd/user/lxc-autostart.serviceব্যবহারকারীদের কাছে এলএক্সসি পাত্রে থাকা ফাইলের ফাইলটি তৈরি করুন :
[Unit]
Description="Lxc-autostart for lxc user"
[Service]
Type=oneshot
ExecStart=/usr/bin/lxc-autostart
ExecStop=/usr/bin/lxc-autostart -s
RemainAfterExit=1
[Install]
WantedBy=default.target
- তারপরে সেই ব্যবহারকারী রান করুন:
systemctl --user enable lxc-autostart
(দ্রষ্টব্য, --userবিকল্পটি সিস্টেমেস্টিটলকে আপনি এটি ব্যবহারকারীর মোডে ব্যবহার করছেন। বলছি ct সাধারণত আমি সিস্টেমটেল, স্টার্ট, স্ট্যাটিক, সক্ষম ইত্যাদি) - ব্যবহারকারীর সাথে কাজ করি)
- তারপরে নিম্নলিখিতটি চালান, যেখানে
$userব্যবহারকারীর নাম যেখানে এলএক্সসি পাত্রে রয়েছে:
sudo loginctl enable-linger $user
$userবুট করার সময় সিস্টেমে একটি সিস্টেমযুক্ত ব্যবহারকারী উদাহরণ শুরু করা আবশ্যক । অন্যথায় এটি $userলগ ইন করার মুহুর্তে কেবল একটি শুরু হবে ।
আরও তথ্যের জন্য আমি আর্চলিনাক্স উইকি সিস্টেমড / টাইমার পৃষ্ঠা এবং সিস্টেমড ম্যান পৃষ্ঠাগুলির সুপারিশ করব ।
ব্যবহারকারীর সিস্টেমেড উদাহরণটি রুট হিসাবে অ্যাক্সেস করা
আপনি ব্যবহারকারীর সিস্টেমড সার্ভিসটিকে মূল হিসাবে শুরু / থামাতে / শুরু করতে পারেন, তবে এটি আপনাকে XDG_RUNTIME_DIRপরিবেশের পরিবর্তনশীল সেট করতে হবে । ধরে নিন $user যে সেই ব্যবহারকারীর উদাহরণে আপনি অ্যাক্সেস করতে চান এবং $uidএটি উদ্বিগ্ন, তারপরে আপনি উপরে বর্ণিত lxc-autostart.service শুরু করবেন:
sudo -u $user XDG_RUNTIME_DIR=/run/user/$uid systemctl --user start lxc-autostart
এমনকি systemd-runlxc না ভাঙার উপায়ে ব্যবহারকারীর হিসাবে স্বেচ্ছাসেবক কমান্ডগুলি চালাতে ব্যবহার করতে পারেন । আমি ব্যাকআপের আগে / পরে আমার পাত্রে থামাতে / শুরু করতে নিম্নলিখিত কমান্ডগুলি ব্যবহার করছি, যেখানে $nameব্যাকআপ করা হচ্ছে এমন lxc ধারকটির নাম কোথায় :
sudo -u $user XDG_RUNTIME_DIR=/run/user/$uid systemd-run --user --wait lxc-stop -n $name
sudo -u $user XDG_RUNTIME_DIR=/run/user/$uid systemd-run --user --scope lxc-start -n $name
(মনে রাখবেন যে --waitকন্টেইনারটি থামানো না হওয়া পর্যন্ত সিস্টেম-চালিত ব্যতীত অবরুদ্ধ হয় না))