it-swarm-id.com

Bagaimana saya bisa tahu, dari baris perintah, apakah mesin memerlukan reboot?

Saat Anda menginstal pembaruan tertentu (mis. Kernel baru) di Ubuntu Desktop, Anda mendapat indikasi bahwa diperlukan boot ulang (di Lucid, ikon logout berubah merah).

Bagaimana saya bisa memeriksa, dari baris perintah, apakah Ubuntu server membutuhkan reboot?

Saya dapat memahami untuk 'Sistem restart diperlukan' di /etc/motd, tapi saya ingin solusi yang lebih elegan. Saya juga ingin solusi yang berfungsi di rilis yang lebih lama, mis. Hardy (8,04 LTS).

250
Marius Gedminas

Anda cukup memeriksa apakah file /var/run/reboot-required ada atau tidak.

Misalnya, salah satu dari ini akan memberi tahu Anda "tidak ada file seperti itu" atau "file tidak ditemukan" jika Anda tidak perlu melakukan reboot, jika tidak (jika Anda perlu reboot) file akan ada dan perintah ini akan menampilkan informasi tentang file:

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

Dalam skrip bash, Anda dapat menggunakan:

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

Dalam paket debian-goodies adalah perintah bernama checkrestart yang cukup berguna. Outputnya dapat membantu Anda menghindari reboot penuh.

Ini memberitahu Anda yang menjalankan aplikasi yang memuat pustaka bersama yang ditingkatkan ketika aplikasi sedang berjalan. Anda kemudian me-restart aplikasi dan layanan secara manual dan menghindari reboot penuh. Namun, tidak membantu dengan peningkatan kernel.

44
aquaherd

Biasanya kalau file

/var/run/reboot-required 

ada Anda harus reboot. Anda dapat melihat apakah file ini ada di sana dengan menggunakan perintah sederhana ini di gnome-terminal.

ls /var/run/reboot-required
33
kone4040

Selain metode paling langsung yang ditulis oleh orang lain, ada indikasi praktis jika Anda menggunakan byob - sekumpulan skrip untuk membuat layar GNU sedikit lebih ramah pengguna. Ini menunjukkan serangkaian informasi di bagian bawah layar, dan itu dapat mencakup apakah reboot diperlukan - bersama dengan apakah pembaruan tersedia, waktu, waktu aktif, memori yang digunakan ...

Dalam tangkapan layar ini Anda dapat melihat dari 199! di baris paling bawah dengan latar belakang merah yang ada 199 pembaruan yang tersedia. !!artinya ada beberapa pembaruan keamanan . Menu di latar depan memilih pemberitahuan status mana yang harus ditampilkan.

Jika reboot diperlukan maka ini akan ditunjukkan oleh simbol (R) yang ditampilkan di bar bawah dengan teks putih pada latar belakang biru. Lebih detail dan indikator lainnya dapat dibaca di halaman manual byob .

screenshot

17
Hamish Downer

File /etc/motd mendapatkan informasi tentang apakah diperlukan reboot dari file /var/run/reboot-required.

Anda dapat memeriksa konten file ini di terminal dengan menggunakan perintah cat /etc/motd

9
ajmitch

Saya menambahkan berikut ini ke file .bash-alias saya:

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

Tampak lebih sederhana daripada menginstal paket untuk tugas yang relatif sederhana ini. Lalu saya jalankan:

[email protected]:~$ rr
No reboot needed
[email protected]:~$ 
7
Capricorn1

Jika Anda menginstal paket reboot-notifier atau update-notifier-common, maka Anda mendapatkan file/var/run/reboot-diperlukan dan /var/run/reboot-required.pkgs

reboot-notifier lebih baru di Ubuntu Wily dan Xenial. Peregangan Debian, tapi di jessie-backports

update-notifier-common Lebih tua, di semua versi Ubuntu termasuk Xenial dan Debian Wheezy. Tidak dalam Debian Stretch atau Jessie.

(Ada beberapa latar belakang paket reboot-notifier di https://feeding.cloud.geek.nz/posts/introducing-reboot-notifier/ )

Jika Anda tidak menginstal paket ini maka Anda dapat membandingkan versi paket linux yang diinstal, dengan versi yang berjalan:

[email protected]:~$ 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)
[email protected]:~$ more /proc/version
Linux version 3.16.0-4-AMD64 ([email protected]) (gcc version 4.8.4 (Debian 4.8.4-1) ) #1 SMP Debian <b>3.16.7-ckt20-1+deb8u3</b> (2016-01-17)

Anda dapat melihat di sini bahwa kernel terinstal terbaru adalah 3.16.7-ckt20-1 + deb8u4 tetapi kernel yang berjalan adalah 3.16.7-ckt20-1 + deb8u3. Jadi sistem ini membutuhkan reboot. The u4 vs u3 tepat di akhir.

Anda mungkin perlu menggulir kotak di atas. Dalam versi/proc /, itu adalah versi di dekat akhir baris yang penting.

Perubahan kode versi yang sangat kecil adalah tipikal dari pembaruan kernel keamanan Debian.

perlu kembali

Pilihan lain adalah menginstal paket needrestart.

Sudo apt-get install needrestart
Sudo needrestart -k

Tampaknya berfungsi meskipun perlu dipasang kembali setelah kernel ditingkatkan.

7
Tim Bray

Solusi orang miskin:

#!/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

(Perhatikan: Tiga case kurung siku dengan spasi putih di dalamnya harus "[<spasi> <tab>]".)