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


Saat Anda menginstal pembaruan tertentu (misalnya kernel baru) di Ubuntu Desktop, Anda mendapatkan indikasi bahwa diperlukan reboot (di Lucid, ikon logout berubah menjadi merah).

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

Saya bisa grep untuk 'Sistem restart diperlukan' di /etc/motd, tapi saya ingin solusi yang lebih elegan. Selain itu, saya menginginkan solusi yang berfungsi pada rilis yang lebih lama, mis. Hardy (8.04 LTS).


219
2017-07-28 21:49


asal


Jika Anda mempertahankan server Anda akan segera juga mengembangkan akal cuaca atau tidak memperbarui memerlukan restart. Sebagian besar pembaruan tidak memerlukan restart atau hanya memulai kembali layanan (penyihir harus dilakukan secara otomatis). - eXlin


Jawaban:


Anda cukup memeriksa apakah file tersebut /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 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

257
2017-07-28 22:02



Ini berfungsi, dan berfungsi juga di Hardy. (Tidak berfungsi pada Dapper - 6.06 - yang masih saya miliki di satu komputer. Tough.) Kebetulan, file / var / run / reboot-required dibuat oleh / usr / share / update-notifier / notify-reboot -diperlukan yang dipanggil dari berbagai paket maintainer skrip. - Marius Gedminas
Ini akan bekerja pada Dapper juga jika saya menginstal paket pembaruan-notifier, kecuali bahwa ia ingin menarik barang GNOME senilai 120 MB ke server kuno saya. - Marius Gedminas
Lebih baik menginstal pembaruan-notifier-umum, itu tidak tergantung pada hal-hal GUI (tetapi tidak ada untuk Dapper). - Marius Gedminas
FWIW, update-notifier-common tidak diinstal di server Lucid secara default. - Marius Gedminas
Terima kasih! dan file /var/run/reboot-required.pkgs akan daftar paket yang membutuhkan reboot. - nealmcb


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


39
2017-09-09 14:51



Bagaimana itu bisa membuat saya menghindari reboot penuh? - Oxwivi
Ini memberitahu Anda, aplikasi yang berjalan mana yang memuat pustaka bersama yang ditingkatkan saat aplikasi berjalan. Anda kemudian restart aplikasi dan layanan secara manual dan hindari reboot penuh. Tidak membantu dengan upgrade kernel. - aquaherd
Ini harus menjadi jawaban teratas. Sangat membantu. OpenSUSE mendapatkan alat yang ada di dalamnya (dan juga membantu Anda bagaimana Anda bisa menjalankannya). Malu Ubuntu hanya pergi "restart, restart". Misalnya colord perlu restart di sini. Oleh karena itu, tidak perlu restart. - Shiki
@aquaherd Komentar yang sangat membantu - semoga bermanfaat untuk itu menjadi jawaban Anda? - Duncan Jones


Biasanya jika file tersebut

/var/run/reboot-required 

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

ls /var/run/reboot-required

32
2017-07-28 21:59



File ini tampaknya tidak dibuat lagi dari pembaruan-notifier-umum yang digunakan untuk membuatnya. - Scott


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

Di screenshot ini Anda bisa melihat dari 199! di garis bawah dengan latar belakang merah yang ada 199 pembaruan tersedia, dan ! berarti bahwa beberapa pembaruan keamanan. Menu di latar depan adalah memilih pemberitahuan status mana yang harus ditampilkan.

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

byobu screenshot


17
2017-07-29 17:59





Itu /etc/motd file mendapatkan informasinya tentang apakah reboot diperlukan /var/run/reboot-required mengajukan.

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


9
2017-07-28 21:53



update-notifier-common digunakan untuk membuat ini tetapi tidak lagi - Scott


Saya menambahkan yang berikut ini ke file .bash-aliases 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:

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

6
2017-12-16 13:22





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

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

pembaruan-notifier-umum Lebih tua, di semua versi Ubuntu termasuk Xenial dan Debian Wheezy. Tidak di Debian Stretch atau Jessie.

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

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

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)

Anda dapat melihat di sini bahwa kernel yang 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 bagian akhir.

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

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

needrestart

Pilihan lainnya adalah menginstal needrestart paket.

sudo apt-get install needrestart
sudo needrestart -k

Tampaknya berfungsi bahkan jika needrestart dipasang setelah kernel ditingkatkan.


5
2018-03-06 21:48



Bagaimana paragraf pertama Anda berkorelasi dengan versi Ubuntu? - muru
Poin bagus. Terima kasih. Saya telah menghabiskan begitu lama menguji dan mencoba paket-paket yang saya lewatkan. Saya telah mengedit untuk membuat lebih jelas dan menyertakan info paket ubuntu. - Tim Bray
Kembali pada 8.04, setelah pembaruan yang membutuhkan restart, Cog akan berubah menjadi merah. Bagaimana saya mendapatkan perilaku itu kembali? - PenguinCSC
Ubuntu 14.04, saya dapatkan dpkg-query: no packages found matching linux-image-* - the_nuts
Unknown option: k di Ubuntu 14.04. - Cees Timmerman


Bukan jawaban untuk pertanyaan, tetapi peringatan tentang beberapa tanggapan: /var/run/reboot-required aku s tidak sumber yang dapat dipercaya tentang apakah reboot diperlukan atau tidak.

Tes sederhana: ketika kernel baru tersedia, pasang, reboot. Setelah reboot, jalankan apt autoremove untuk menyingkirkan beberapa kernel lama yang tidak diperlukan lagi. Setelah Anda menjalankan itu, itu akan menyatakan bahwa reboot diperlukan, yang merupakan omong kosong.


-1
2017-09-14 07:09



Yah, menghapus kernel menghasilkan kembali file konfigurasi grub Anda, setelah itu mungkin ide yang baik untuk reboot, untuk memverifikasi bahwa Anda masih bisa boot. Setidaknya begitulah cara saya membenarkan fitur (mis) ini untuk diri saya sendiri. - Marius Gedminas