উবুন্টুতে প্যাকেজ আপগ্রেড করার পরে রিবুট করব কিনা তা আমি কিভাবে জানি?


3

আমি একটি পিসি উবুন্টু সার্ভার চলমান আছে।

কখনও কখনও যখন আমি এটিতে ssh, আমি একটি বার্তা পেয়েছি যে কিছু প্যাকেজ আপগ্রেড করার প্রয়োজন।

আমি চলমান সফ্টওয়্যার আপগ্রেড (রুট হিসাবে)

aptitude update && aptitude safe-upgrade

কখনও কখনও যে যথেষ্ট। তবে কখনও কখনও আমাকে আবার রিবুট করতে হবে, এবং আমি পরবর্তীতে এসএসএ না হওয়া পর্যন্ত এটি বলিনি। আমি কিভাবে দ্রুত খুঁজে বের করতে পারেন?

আদর্শভাবে আমি মত কিছু চলমান আপগ্রেড করতে চাই

aptitude update && aptitude safe-upgrade &&
if aptitude needs-reboot ; then shutdown -r now ; fi

কিন্তু aptitude needs-reboot কমান্ড বিদ্যমান নেই। আমি পরিবর্তে কি চালানো উচিত?


ব্যাখ্যা:

  • প্রকৃতপক্ষে আমার দুটি পিসি আছে, এক চলমান 10.04 (লুসিড) এবং অন্য চলমান 11.04 (natty)। আমি আশা করি এটা উভয়ের জন্য একই সমাধান হবে।
  • কঠোরভাবে কমান্ড লাইন সমাধান দয়া করে। এই পিসিগুলির মধ্যে একটিতে একটি প্রদর্শন নেই এবং তাদের মধ্যে একটিও কীবোর্ড নেই।

উত্তর:


5

এক উপ-উপায়ে --- সম্ভবত উবুন্টু নির্দিষ্ট --- এই ফাইলের অস্তিত্ব পরীক্ষা করা হয়:

/var/run/reboot-required

যদি এটি বিদ্যমান থাকে, একটি রিবুট প্রয়োজন।

সুতরাং একটি বাশ ফাংশন .bash_rc (এবং সহ।) কাজ করতে পারে:

function needs_reboot {
  if [ -f /var/run/reboot-required ]; then
    read -p "Restart needed. Reboot? (y/N) " answer;
    if [ "$answer" = "y" -o "$answer" = "Y" ]; then
      reboot;
    fi
  else
    echo "No restart";
  fi
}

এই ধারণা কোথা থেকে আসে? MOTD দ্বারা লগইন সময় আপডেট করা হয় pam_motd প্রক্রিয়া থেকে, তার বিষয়বস্তু পড়া /etc/update-motd.d ডিরেক্টরি। এই ডিরেক্টরির মধ্যে একটি আছে /etc/update-motd.d/98-reboot-required স্ক্রিপ্ট (উবুন্টু 12_04) যা আমাদের অস্তিত্বের জন্য পরীক্ষা করে /var/run/reboot-required। যে দৃশ্যত একটি রিবুট পরামর্শ সিদ্ধান্ত নেওয়া হয়। তাই উপরের ফাংশন ঠিক ইন্টারেক্টিভ একই চেক করে তোলে।

আমি এপিটি থেকে সরাসরি এটি পেতে চাই, কিন্তু এখন, এটি কাজ করে ...


1

কিভাবে এই (রুট হিসাবে চালান): apt-get update && apt-get dist-upgrade --dry-run | grep linux-; if [ $? -eq 0 ]; then yes | apt-get dist-upgrade && reboot; else yes | apt-get dist-upgrade; fi

একটি কার্নেল আপডেট আছে grep linux- 0 ফিরে আসবে এবং তারপর আপনি রিবুট হবে। দ্য yes কমান্ড দ্বারা প্রতিস্থাপিত হতে পারে apt-get dist-upgrade --assume-yes। কোন কার্নেল আপডেট পাওয়া গেলে রিবুট হবে না।


0

কার্নেল আপগ্রেড হলে শুধুমাত্র রিবুট করতে হবে।


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