it-swarm-ko.tech

명령 줄에서 컴퓨터를 재부팅해야하는지 어떻게 알 수 있습니까?

Ubuntu Desktop에 특정 업데이트 (예 : 새 커널)를 설치하면 재부팅이 필요하다는 표시가 나타납니다 (Lucid에서 로그 아웃 아이콘이 빨간색으로 바)).

명령 행에서 Ubuntu server를 재부팅해야하는지 어떻게 확인할 수 있습니까?

/etc/motd에서 '시스템 재시작 필요'를 grep 할 수 있지만보다 우아한 솔루션을 원합니다. 또한 예를 들어 이전 릴리스에서 작동하는 솔루션을 원합니다. 하디 (8.04 LTS).

250
Marius Gedminas

/var/run/reboot-required 파일이 있는지 여부를 간단히 확인할 수 있습니다.

예를 들어, 재부팅 할 필요가없는 경우 "이러한 파일 없음"또는 "파일을 찾을 수 없음"이라는 메시지가 표시됩니다. 그렇지 않으면 (다시 부팅해야하는 경우) 파일이 존재하며 이러한 명령은 파일에 대한 정보를 표시합니다.

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

Bash 스크립트에서 다음을 사용할 수 있습니다.

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

패키지에는 debian-goodies가 checkrestart이라는 명령이 있는데, 이는 매우 유용합니다. 출력으로 전체 재부팅을 피할 수 있습니다.

어떤 실행중인 응용 프로그램이 응용 프로그램을 실행하는 동안 업그레이드 된 공유 라이브러리를로드했는지 알려줍니다. 그런 다음 응용 프로그램 및 서비스를 수동으로 다시 시작하고 전체 재부팅을 피하십시오. 그러나 커널 업그레이드에는 도움이되지 않습니다.

44
aquaherd

일반적으로 파일이

/var/run/reboot-required 

존재해야 재부팅합니다. gnome-terminal에서이 간단한 명령을 사용하여이 파일이 있는지 확인할 수 있습니다.

ls /var/run/reboot-required
33
kone4040

다른 사람들이 작성한 가장 직접적인 방법뿐만 아니라 byob -GNU 화면을 좀 더 사용자 친화적으로 만드는 스크립트 세트를 사용하면 편리한 표시가 있습니다. 화면 하단에 일련의 정보가 표시되며 재부팅이 필요한지 여부-업데이트 사용 가능 여부, 시간, 가동 시간, 메모리 사용 여부 등이 포함될 수 있습니다.

이 스크린 샷에서 하단 줄의 199!에서 빨간색 배경으로 199 개의 업데이트가 있음을 알 수 있습니다. !!일부는 보안 업데이트임을 의미 . 포 그라운드의 메뉴는 표시 할 상태 알림을 선택합니다.

재부팅이 필요한 경우 하단 표시 줄에 파란색 배경에 흰색 텍스트와 함께 (R) 기호가 표시됩니다. 자세한 내용 및 기타 지표는 byobu man page 에서 확인할 수 있습니다.

screenshot

17
Hamish Downer

/etc/motd 파일은 /var/run/reboot-required 파일에서 재부팅이 필요한지 여부에 대한 정보를 얻습니다.

cat /etc/motd 명령을 사용하여 터미널에서이 파일의 내용을 확인할 수 있습니다

9
ajmitch

.bash-aliases 파일에 다음을 추가했습니다.

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

이 비교적 간단한 작업을 위해 패키지를 설치하는 것보다 간단 해 보입니다. 그런 다음 방금 실행합니다.

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

Reboot-notifier 또는 update-notifier-common 패키지가 설치되어 있으면/var/run/reboot-required 및 /var/run/reboot-required.pkgs 파일이 생성됩니다.

reboot-notifier 는 Ubuntu Wily 및 Xenial에서 최신입니다. 데비안 스트레치, 그러나 jessie-backports

update-notifier-common Xenial 및 Debian Wheezy를 포함한 모든 우분투 버전에서 더 오래되었습니다. 데비안 스트레치 나 제시에는 없습니다.

( https://feeding.cloud.geek.nz/posts/introducing-reboot-notifier/ 에 reboot-notifier 패키지에 대한 배경 지식이 있습니다.)

이러한 패키지가 설치되어 있지 않은 경우 설치된 Linux 패키지 버전과 실행중인 버전을 비교할 수 있습니다.

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

여기에서 최신 설치된 커널은 3.16.7-ckt20-1 + deb8u4이지만 커널 실행은 3.16.7-ckt20-1 + deb8u3입니다. 따라서이 시스템을 재부팅해야합니다. 마지막에 u4 대 u3이 있습니다.

위의 상자를 스크롤해야 할 수도 있습니다./proc/version에서는 중요한 행 끝 부분의 버전입니다.

아주 작은 버전의 코드 변경은 일반적인 데비안 보안 커널 업데이트입니다.

재시작이 필요하다

다른 옵션은 needrestart 패키지를 설치하는 것입니다.

Sudo apt-get install needrestart
Sudo needrestart -k

커널을 업그레이드 한 후 needrestart가 설치되어 있어도 작동하는 것 같습니다.

7
Tim Bray

불쌍한 사람의 해결책 :

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

(주의 사항 : 공백이있는 3 개의 대괄호는 "[<space> <tab>]"이어야합니다.)

1