it-swarm-tr.com

Makinenin yeniden başlatılması gerekip gerekmediğini komut satırından nasıl anlarım?

Ubuntu Desktop’a belirli güncellemeler (örneğin, yeni bir çekirdek) yüklediğinizde, yeniden başlatmanın gerekli olduğuna dair bir işaret alırsınız (Lucid’de, oturum kapatma simgesi kırmızıya döner).

Bir Ubuntu server yeniden başlatma gerektirip gerektirmediğini komut satırından nasıl kontrol edebilirim?

/etc/motd içinde 'Sistemin yeniden başlatılması gerekiyor' ifadesini kullanabiliyordum, ancak daha şık bir çözüm istiyorum. Ayrıca, eski sürümlerde çalışan bir çözüm istiyorum, örneğin; Hardy (8.04 LTS).

250
Marius Gedminas

/var/run/reboot-required dosyasının var olup olmadığını kontrol edebilirsiniz.

Örneğin, bunlardan herhangi biri, yeniden başlatmanız gerekmiyorsa, "böyle bir dosya yok" veya "dosya bulunamadı" dır, aksi takdirde (yeniden başlatmanız gerekirse) dosya var olur ve bu komutlar dosyayla ilgili bilgileri gösterir:

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

Bir bash betiğinde şunları kullanabilirsiniz:

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

Debian-goodies paketinde checkrestart adında bir komuttur ve bu oldukça faydalıdır. Çıkışı tam bir yeniden başlatmadan kaçınmanıza yardımcı olabilir.

Hangi çalışan uygulamaların, uygulama çalışırken yükseltilen paylaşılan kütüphaneleri yüklediğini gösterir. Ardından uygulamaları ve hizmetleri manuel olarak yeniden başlatır ve yeniden başlatmanın önüne geçersiniz. Yine de çekirdek güncellemelerinde yardımcı olmuyor.

44
aquaherd

Normalde eğer dosya

/var/run/reboot-required 

yeniden başlatmanız gereken var. Bu dosyanın orada olup olmadığını gnome-terminalinde bu basit komutu kullanarak görebilirsiniz.

ls /var/run/reboot-required
33
kone4040

Başkaları tarafından yazılan en doğrudan yöntemlerin yanı sıra byob - GNU ekranını biraz daha kullanıcı dostu yapmak için bir komut dizisi kullanıyorsanız kullanışlı bir gösterge vardır. Ekranın altında bir dizi bilgi gösterir ve yeniden başlatmanın gerekip gerekmediğini içerir - güncellemelerin mevcut olup olmadığı, süre, çalışma süresi, kullanılan hafıza ...

Bu ekran görüntüsünde alt satırdaki 199! ekranından 199 güncellemenin mevcut olduğu kırmızı arka plan ile görebilirsiniz. A !!bazılarının güvenlik güncellemeleri olduğu anlamına gelir . Ön plandaki menü, hangi durum bildirimlerinin gösterilmesi gerektiğini seçiyor.

Yeniden başlatma gerekirse, bu, alt çubukta mavi bir arka plan üzerinde beyaz metinle gösterilen (R) sembolü ile gösterilir. Daha fazla detay ve diğer göstergeler byobu man sayfası adresinden okunabilir.

screenshot

17
Hamish Downer

/etc/motd dosyası, /var/run/reboot-required dosyasından yeniden başlatmanın gerekip gerekmediği hakkında bilgi alır.

Bu dosyanın içeriğini terminalde cat /etc/motd komutunu kullanarak kontrol edebilirsiniz.

9
ajmitch

Aşağıdaki .bash-aliases dosyama ekledi:

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

Bu nispeten basit görev için bir paket kurmaktan daha basit görünüyordu. Sonra sadece koşuyorum:

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

Yüklü yeniden başlatma bildiricisi veya güncelleme bildiricisi ortak paketleriniz varsa,/var/run/reboot-zorunlu ve /var/run/reboot-required.pkgs dosyalarını alırsınız.

reboot-notifier Ubuntu Wily ve Xenial'da daha yeni. Debian germek, ancak jessie-backports içinde

update-notifier-common Xenial ve Debian Wheezy dahil olmak üzere tüm Ubuntu sürümlerinde daha eskidir. Debian Stretch veya Jessie'de değil.

(Yeniden başlatma bildirim paketi için https://feeding.cloud.geek.nz/posts/introducing-reboot-notifier/ adresinde bazı arka planlar var

Eğer bu paketleri kurmadıysanız, kurulu olan linux paketinin versiyonunu çalıştıran versiyon ile karşılaştırabilirsiniz:

[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)

Burada en son kurulu çekirdeğin 3.16.7-ckt20-1 + deb8u4 olduğunu, ancak çekirdeğin çalıştığını 3.16.7-ckt20-1 + deb8u3 olduğunu görebilirsiniz. Yani bu sistemin yeniden başlatılması gerekiyor. Sonunda u4 vs u3.

Yukarıdaki kutuyu kaydırmanız gerekebilir./Proc/version'da, satırın sonundaki önemli olan sürümdür.

Çok küçük sürüm kodu değişikliği, bir Debian güvenlik çekirdeği güncellemesi için tipiktir.

needrestart

Başka bir seçenek needrestart paketini kurmaktır.

Sudo apt-get install needrestart
Sudo needrestart -k

Çekirdek yükseltildikten sonra needrestart kurulu olsa bile çalışıyor gibi görünüyor.

7
Tim Bray

Zavallı adamın çözümü:

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

(Dikkat: İçinde beyaz boşluk olan üç köşeli ayraç durumu "[<boşluk> <tab>]" olmalıdır.)