কমান্ড লাইন থেকে কীভাবে বলতে পারি, মেশিনটির একটি রিবুট দরকার কিনা?


256

আপনি যখন উবুন্টু ডেস্কটপে কিছু আপডেট (যেমন একটি নতুন কার্নেল) ইনস্টল করেন, আপনি একটি ইঙ্গিত পাবেন যে একটি রিবুট প্রয়োজন (লুসিডে, লগআউট আইকনটি লাল হয়ে যায়)।

কমান্ড লাইন থেকে আমি কীভাবে পরীক্ষা করতে পারি, কোনও উবুন্টু সার্ভারের রিবুট দরকার কিনা ?

আমি 'সিস্টেম পুনরায় আরম্ভের প্রয়োজন' এর জন্য গ্রেপ করতে পারি /etc/motdতবে আমি এমন সমাধান চাই যা আরও মার্জিত। এছাড়াও, আমি এমন একটি সমাধান চাই যা পুরানো প্রকাশগুলিতে কাজ করে, যেমন হার্ডি (8.04 এলটিএস)।


আপনি যদি সার্ভার বজায় রাখছেন তবে শীঘ্রই আপনি বুদ্ধিমান বেতারও বিকাশ করতে পারবেন বা আপডেট না হলে পুনরায় আরম্ভের প্রয়োজন। বেশিরভাগ আপডেটের পুনরায় আরম্ভ বা কেবল পরিষেবা পুনরায় আরম্ভের প্রয়োজন নেই (ডাইনিটি এটি স্বয়ংক্রিয়ভাবে করা উচিত)।
এক্সলিন

উত্তর:


289

ফাইলটি /var/run/reboot-requiredউপস্থিত আছে কি নেই তা আপনি কেবল পরীক্ষা করতে পারেন ।

উদাহরণস্বরূপ, এর মধ্যে যে কোনওটি আপনাকে "এ জাতীয় কোনও ফাইল" বা "ফাইল খুঁজে পাওয়া যায়নি" যদি আপনাকে পুনরায় বুট করার দরকার না হয় তবে অন্যথায় (যদি আপনাকে পুনরায় বুট করার দরকার হয়) ফাইলটি উপস্থিত থাকত এবং এই আদেশগুলি ফাইল সম্পর্কে তথ্য প্রদর্শন করবে:

file /var/run/reboot-required
stat /var/run/reboot-required
ls /var/run/reboot-required

ব্যাশ স্ক্রিপ্টে আপনি ব্যবহার করতে পারেন:

#!/bin/bash
if [ -f /var/run/reboot-required ]; then
  echo 'reboot required'
fi

1
এটি কাজ করে, এবং এটি হার্ডির উপরেও কাজ করে। (ড্যাপারে কাজ করে না - 6.06 - যা এখনও আমার একটি মেশিনে রয়েছে ough শক্ত) প্রয়োজনীয় যা বিভিন্ন প্যাকেজগুলির রক্ষণাবেক্ষণকারী স্ক্রিপ্ট থেকে আহবান করা হয়।
মারিউস গেডমিনাস

2
এটি আপডেট-নোটিফায়ার প্যাকেজটি ইনস্টল করা হলে এটি ড্যাপারেও কাজ করবে, এটি ছাড়াও এটি আমার প্রাচীন সার্ভারে ১২০ মেগের মূল্যের জিনোম স্টাফটি টানতে চায়।
মারিয়াস গেডমিনাস

10
আপডেট-নোটিফায়ার-সাধারণ ইনস্টল করার চেয়ে আরও ভাল, এটি কোনও জিইউআই স্টাফের উপর নির্ভর করে না (তবে ডাপারের জন্য এটি বিদ্যমান নেই)।
মারিউস গেডমিনাস

1
এফডাব্লুআইডাব্লু, আপডেট-নোটিফায়ার-সাধারণ ডিফল্টরূপে লুসিড সার্ভারে ইনস্টল করা হয় না।
মারিয়াস গেডমিনাস

5
ধন্যবাদ! এবং ফাইলটি /var/run/reboot-required.pkgsপুনরায় বুট করার জন্য প্রয়োজনীয় প্যাকেজগুলি তালিকাভুক্ত করবে।
nealmcb

44

প্যাকেজে ডিবিয়ান-গুডিজ হ'ল একটি কমান্ড checkrestartযা বেশ কার্যকর। এর আউটপুট আপনাকে পুরো রিবুট এড়াতে সহায়তা করতে পারে।

এটি আপনাকে বলছে যে চলমান অ্যাপ্লিকেশনগুলি ভাগ করা লাইব্রেরিগুলি লোড করেছে যা অ্যাপ্লিকেশন চলাকালীন আপগ্রেড করা হয়েছিল। তারপরে আপনি ম্যানুয়ালি অ্যাপ্লিকেশন এবং পরিষেবাদি পুনরায় চালু করবেন এবং একটি সম্পূর্ণ পুনরায় বুট এড়ান। যদিও কার্নেল আপগ্রেডে সহায়তা করে না।


1
এটি কীভাবে আমাকে পুরোপুরি পুনরায় বুট এড়ানোর জন্য তৈরি করতে পারে?
অক্সভিভি

11
এটি আপনাকে বলে, কোন চলমান অ্যাপ্লিকেশনগুলি ভাগ করা লাইব্রেরিগুলি লোড করেছে যা অ্যাপ্লিকেশন চলাকালীন আপগ্রেড করা হয়েছিল। তারপরে আপনি ম্যানুয়ালি অ্যাপ্লিকেশন এবং পরিষেবাদি পুনরায় চালু করবেন এবং একটি সম্পূর্ণ পুনরায় বুট এড়ান। যদিও কার্নেল আপগ্রেডে সহায়তা করে না।
অ্যাকোহার্ড

এটি শীর্ষ উত্তর হওয়া উচিত। খুব উপকারী. ওপেনসুএস একটি অন্তর্নির্মিত একটি সরঞ্জাম পেয়েছে (এবং কীভাবে আপনি এটি চালাতে পারেন তা আপনাকে সহায়তা করে)। লজ্জা উবুন্টু কেবল "পুনরায় চালু করুন, পুনরায় চালু করুন"। উদাহরণস্বরূপ কলর্ডের এখানে পুনরায় চালু করা দরকার। সুতরাং, পুনরায় আরম্ভ করার দরকার নেই।
শিকি

@ একাহের্ড খুব সহায়ক মন্তব্য - আপনার উত্তরে এটি সরিয়ে নেওয়া ভাল হতে পারে?
ডানকান জোন্স

33

সাধারণত যদি ফাইল হয়

/var/run/reboot-required 

আপনার পুনরায় বুট করা উচিত। জিনোম-টার্মিনালে এই সাধারণ কমান্ডটি ব্যবহার করে আপনি দেখতে পাচ্ছেন যে এই ফাইলটি আছে কিনা।

ls /var/run/reboot-required

এই ফাইলটি এটি তৈরি করতে ব্যবহৃত আপডেট-নোটিফায়ার-কমন থেকে আর তৈরি হয় বলে মনে হয় না।
স্কট

17

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

এই স্ক্রিনশটে আপনি 199!নীচের লাইনের নীচে থেকে লাল ব্যাকগ্রাউন্ডের সাথে দেখতে পাবেন যে সেখানে ১৯৯ টি আপডেট উপলব্ধ রয়েছে। এর !! অর্থ হল কিছু সুরক্ষা আপডেট । অগ্রভাগের মেনুটি কোন স্থিতির বিজ্ঞপ্তিগুলি প্রদর্শিত হবে তা নির্বাচন করছে।

যদি একটি রিবুট প্রয়োজন হয় তবে (R)নীলের বারে নীল পটভূমিতে সাদা পাঠ্য সহ প্রদর্শিত প্রতীক দ্বারা এটি নির্দেশ করা হবে । বাইবু ম্যান পৃষ্ঠাতে আরও বিশদ এবং অন্যান্য সূচকগুলি পড়তে পারেন ।

স্ক্রিনশট


9

/etc/motdফাইলটি একটি পুনরায় বুট থেকে প্রয়োজন বোধ করা হয় কিনা সম্পর্কে তার তথ্য পায় /var/run/reboot-requiredফাইল।

cat /etc/motdকমান্ড ব্যবহার করে আপনি টার্মিনালে এই ফাইলটির বিষয়বস্তু চেক করতে পারেন


আপডেট-বিজ্ঞপ্তিদাতা এটি তৈরি করতে ব্যবহৃত হয় কিন্তু আর হয় না
স্কট

8

আপনার যদি রিবুট-বিজ্ঞপ্তিদাতা বা আপডেট-বিজ্ঞপ্তিযুক্ত-সাধারণ প্যাকেজগুলি ইনস্টল করা থাকে তবে আপনি ফাইলগুলি / var / রান / রিবুট-প্রয়োজনীয় এবং /var/run/reboot-required.pkgs পেতে পারেন

রিবুট-নোটিফায়ার উবুন্টু উইলি এবং জেনিয়ালে নতুন। ডেবিয়ান প্রসারিত, তবে জেসি-ব্যাকপোর্টগুলিতে

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

(সেখানে পুনরায় বুট-বিজ্ঞপ্তিকারীর প্যাকেজে কিছু ব্যাকগ্রাউন্ড হয় https://feeding.cloud.geek.nz/posts/introducing-reboot-notifier/ )

আপনার যদি এই প্যাকেজগুলি ইনস্টল না করা থাকে তবে আপনি লিনাক্স প্যাকেজটি ইনস্টল করা সংস্করণটির সাথে সংস্করণটি চলার সাথে তুলনা করতে পারেন:

tim@tramp:~$ dpkg -l linux-image-*
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name                              Version               Architecture          Description
+++-=================================-=====================-=====================-=======================================================================
ii  linux-image-3.16.0-4-amd64        3.16.7-ckt20-1+deb8u4 amd64                 Linux 3.16 for 64-bit PCs
ii  linux-image-amd64                 3.16+63               amd64                 Linux for 64-bit PCs (meta-package)
tim@tramp:~$ more /proc/version
Linux version 3.16.0-4-amd64 (debian-kernel@lists.debian.org) (gcc version 4.8.4 (Debian 4.8.4-1) ) #1 SMP Debian <b>3.16.7-ckt20-1+deb8u3</b> (2016-01-17)

আপনি এখানে দেখতে পারেন যে সর্বশেষ ইনস্টল করা কার্নেলটি 3.16.7-ckt20-1 + deb8u4 তবে কার্নেলটি চলমান 3.16.7-ckt20-1 + deb8u3। সুতরাং এই সিস্টেমটির একটি রিবুট দরকার। U4 বনাম u3 ঠিক শেষে।

আপনার উপরের বাক্সটি স্ক্রোল করার প্রয়োজন হতে পারে। / Proc / সংস্করণে, এটি লাইনের শেষের নিকটবর্তী সংস্করণ matters

খুব সামান্য সংস্করণ কোড পরিবর্তনটি একটি ডেবিয়ান সুরক্ষা কার্নেল আপডেটের মতো সাধারণ।

needrestart

আর একটি বিকল্প needrestartপ্যাকেজ ইনস্টল করা হয় ।

sudo apt-get install needrestart
sudo needrestart -k

কার্নেলটি আপগ্রেড করার পরে নিডস্টার্ট ইনস্টল করা হলেও কাজ করার জন্য মনে হয়।


1
আপনার প্রথম অনুচ্ছেদটি কীভাবে উবুন্টু সংস্করণগুলির সাথে সম্পর্কিত?
মারু

ভাল যুক্তি. ধন্যবাদ। আমি এত দীর্ঘ প্যাকেজগুলি পরীক্ষা করে দেখতে চেষ্টা করেছি এবং আমি এটাকে হাতছাড়া করেছি। আমি পরিষ্কার করার জন্য ওবুন্টু প্যাকেজ তথ্য অন্তর্ভুক্ত করার জন্য সম্পাদনা করেছি।
টিম ব্রে

৮.০৪-এ আবার ফিরে আসার পরে পুনরায় সূচনা করার প্রয়োজনীয় আপডেটের পরে কগ লাল হয়ে যাবে। আমি কীভাবে সেই আচরণটি ফিরে পাব?
পেঙ্গুইনসিএসসি

উবুন্টু 14.04, আমি পেয়েছিdpkg-query: no packages found matching linux-image-*
the_nuts

Unknown option: kউবুন্টু 14.04 এ।
সিস টিমারম্যান

7

আমি আমার .বাশ-এলিয়াস ফাইলগুলিতে নিম্নলিখিতগুলি যুক্ত করেছি:

alias rr='if [ -f /var/run/reboot-required ]; then echo "reboot required"; else echo "No reboot needed"; fi'

এই তুলনামূলক সহজ কাজের জন্য প্যাকেজ ইনস্টল করার চেয়ে সহজ বলে মনে হচ্ছে। তারপরে আমি কেবল চালাব:

you@somewhere:~$ rr
No reboot needed
you@somewhere:~$ 

1

দরিদ্র মানুষের সমাধান:

#!/bin/bash
default=$(sed -n 's/^default[   ]*\([0-9][0-9]*\).*/\1/p' /boot/grub/menu.lst | tail -1)
if [ "$default" = "" ]; then default=0; fi

want=$(sed -n 's/^kernel[       ]*\/boot\/vmlinuz-\([^  ]*\).*/\1/p' /boot/grub/menu.lst | sed -n "$((default+1))p")

running=$(uname -r)

if [ "$running" = "$want" ]
then
        : OK, do nothing
else
        echo "Running $running, want $want. Reboot required."
fi

(লক্ষ্য করুন: ভিতরে সাদা স্থান সহ বর্গাকার বন্ধনীগুলির তিনটি কেস "[<স্পেস> <ট্যাব>]" হওয়া উচিত))


গ্রাব 2 /boot/grub/menu.lst আর ব্যবহার করে না, এটি এখন /boot/grub/grub.cfg।
মারিয়াস গেডমিনাস

-1

প্রশ্ন নেই একটি উত্তর কিন্তু প্রতিক্রিয়া বিভিন্ন সম্বন্ধে একটি সতর্কীকরণ: /var/run/reboot-requiredহয় না থাকুক বা না থাকুক জন্য পুনরায় চালু করা আসলে প্রয়োজন বোধ করা হয় একটি নির্ভরযোগ্য উৎস।

সাধারণ পরীক্ষা: যখন কোনও নতুন কার্নেল উপলব্ধ হয়ে যায়, এটি ইনস্টল করুন, পুনরায় বুট করুন। রিবুট করার পরে, apt autoremoveকিছু পুরানো, আর প্রয়োজন নেই, কার্নেলগুলি থেকে মুক্তি পাওয়ার জন্য চালান । এটি চালানোর পরে, এটি বলে যে একটি রিবুট প্রয়োজন, যা সম্পূর্ণ বোকা sen


3
ঠিক আছে, কোনও কার্নেল অপসারণ করা আপনার গ্রাব কনফিগারেশন ফাইলটিকে পুনরায় জেনারেট করে, এরপরে আপনি পুনরায় বুট করতে পারবেন কিনা তা যাচাই করতে পুনরায় বুট করা ভাল ধারণা। কমপক্ষে আমি নিজের কাছে এই (ভুল) বৈশিষ্ট্যটি ন্যায়সঙ্গত করছি।
মারিয়াস গেডমিনাস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.