উবুন্টু 16.04 সার্ভার ভিএম ইমেজটি দৃশ্যত প্রতি 12 ঘন্টা বা তার পরে "অ্যাপট-ডেইলি। সার্ভিস" শুরু করে; এই পরিষেবাটি এপিটি-সম্পর্কিত বিভিন্ন কার্য সম্পাদন করে যেমন উপলভ্য প্যাকেজগুলির তালিকাকে রিফ্রেশ করা, প্রয়োজনে অপ্রত্যাশিত আপগ্রেড করা ইত্যাদি etc.
কোনও ভিএম "স্ন্যাপশট" থেকে শুরু করার সাথে সাথে পরিষেবাটি তাত্ক্ষণিকভাবে ট্রিগার করা হয় , (আমি অনুমান করি) সিস্টেমড দ্রুত বুঝতে পারে যে টাইমারটি অনেক আগেই বন্ধ হওয়া উচিত ছিল।
যাইহোক, একটি চলমান এপিটি apt
এটি লক চালু থাকায় অন্যান্য প্রক্রিয়াগুলি চালানো থেকে বাধা দেয় /var/lib/dpkg
। ত্রুটি বার্তা এটির ইঙ্গিত দেয়:
E: Could not get lock /var/lib/dpkg/lock-frontend - open (11: Resource temporarily unavailable)
E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), is another process using it?
উত্তরীয় মেশিন সেটআপ সম্পন্ন না করা পর্যন্ত আমাকে এই স্বয়ংক্রিয় এপিটি কার্যটি নিষ্ক্রিয় করতে হবে (যার মধ্যে সাধারণত প্যাকেজ ইনস্টল করা জড়িত); দেখতে https://github.com/gc3-uzh-ch/elasticluster/issues/304 আরও তথ্য এবং প্রসঙ্গ জন্য।
"অপ্রয়োজনীয় আপগ্রেড" বৈশিষ্ট্যটি "ব্যবহারকারী ডেটা" স্ক্রিপ্টের মাধ্যমে অক্ষম করার জন্য আমি বিভিন্ন বিকল্পের চেষ্টা করেছি cloud-init
, তবে এগুলি এখনও পর্যন্ত ব্যর্থ হয়েছে।
1. সিস্টেমযুক্ত কাজটি অক্ষম করুন
systemd টাস্ক apt-daily.service
দ্বারা ট্রিগার করা হয় apt-daily.timer
। আমি নিম্নলিখিত কমান্ডগুলির বিভিন্ন কোবিনেশন সহ একটি বা অন্য, বা উভয়কে অক্ষম করার চেষ্টা করেছি; তবুও, apt-daily.service
ভিএম এসএসএইচ সংযোগগুলি গ্রহণ করতে প্রস্তুত হওয়ার কয়েক মুহুর্ত পরে শুরু হয়েছে ::
#!/bin/bash
systemctl stop apt-daily.timer
systemctl disable apt-daily.timer
systemctl mask apt-daily.service
systemctl daemon-reload
২. কনফিগারেশন বিকল্পটি অক্ষম করুন APT::Periodic::Enable
স্ক্রিপ্ট /usr/lib/apt/apt.systemd.daily
কয়েকটি এপিটি কনফিগারেশন ভেরিয়েবলগুলি পড়ে; সেটিংস APT::Periodic::Enable
পুরোপুরি কার্যকারিতা অক্ষম করে (লাইন 331--337)। আমি নিম্নলিখিত স্ক্রিপ্ট দিয়ে এটি অক্ষম করার চেষ্টা করেছি ::
#!/bin/bash
# cannot use /etc/apt/apt.conf.d/10periodic as suggested in
# /usr/lib/apt/apt.systemd.daily, as Ubuntu distributes the
# unattended upgrades stuff with priority 20 and 50 ...
# so override everything with a 99xxx file
cat > /etc/apt/apt.conf.d/99elasticluster <<__EOF
APT::Periodic::Enable "0";
// undo what's in 20auto-upgrade
APT::Periodic::Update-Package-Lists "0";
APT::Periodic::Unattended-Upgrade "0";
__EOF
যাইহোক, কমান্ড লাইন থেকে APT::Periodic::Enable
মূল্য থাকা সত্ত্বেও 0
(নীচে দেখুন), unattended-upgrades
প্রোগ্রামটি এখনও চলছে ...
ubuntu@test:~$ apt-config shell AutoAptEnable APT::Periodic::Enable
AutoAptEnable='0'
3. /usr/lib/apt/apt.systemd.daily
পুরোপুরি সরান
নিম্নলিখিত cloud-init
স্ক্রিপ্ট সম্পূর্ণরূপে অবরুদ্ধ আপগ্রেড স্ক্রিপ্ট অপসারণ ::
#!/bin/bash
mv /usr/lib/apt/apt.systemd.daily /usr/lib/apt/apt.systemd.daily.DISABLED
তবুও, টাস্কটি চলে এবং আমি এটি প্রক্রিয়া সারণিতে দেখতে পাচ্ছি! যদিও কমান্ড লাইন থেকে অনুসন্ধান করা থাকলে ফাইলটির অস্তিত্ব নেই:
ubuntu@test:~$ ls /usr/lib/apt/apt.systemd.daily
ls: cannot access '/usr/lib/apt/apt.systemd.daily': No such file or directory
দেখে মনে হচ্ছে cloud-init
স্ক্রিপ্ট (এসএসএইচ কমান্ড-লাইনের সাথে একত্রে) এবং মূল সিস্টেমড প্রক্রিয়া পৃথক ফাইল সিস্টেম এবং প্রক্রিয়া স্পেসগুলিতে চালিত হয় ...
প্রশ্নাবলি
আমি কি অনুপস্থিত কিছু স্পষ্টত আছে? বা এমন কোনও নেমস্পেস যাদু চলছে যা সম্পর্কে আমি অবগত নই?
সর্বাধিক গুরুত্বপূর্ণ: আমি কীভাবে apt-daily.service
কোনও cloud-init
স্ক্রিপ্টের মাধ্যমে
অক্ষম করতে পারি ?
--now
পতাকাটি নিখোঁজ systemctl disable
করতে পারেন। এটা আমার সমস্যা ছিল।
disable --now
সমান । stop
disable