Câu hỏi Làm thế nào tôi có thể nói, từ dòng lệnh, cho dù máy đòi hỏi phải khởi động lại?


Khi bạn cài đặt các bản cập nhật nhất định (ví dụ: hạt nhân mới) trong Ubuntu Desktop, bạn sẽ nhận được dấu hiệu cho biết khởi động lại là bắt buộc (trong Lucid, biểu tượng đăng xuất chuyển sang màu đỏ).

Làm thế nào tôi có thể kiểm tra, từ dòng lệnh, cho dù một Ubuntu máy chủ yêu cầu khởi động lại?

Tôi có thể grep cho 'Yêu cầu khởi động lại hệ thống' trong /etc/motd, nhưng tôi muốn một giải pháp thanh lịch hơn. Ngoài ra, tôi muốn một giải pháp hoạt động trong các bản phát hành cũ hơn, ví dụ: Hardy (8.04 LTS).


219
2017-07-28 21:49


gốc


Nếu bạn đang duy trì máy chủ, bạn sẽ sớm phát triển ý nghĩa thời tiết hoặc không cập nhật yêu cầu khởi động lại. Hầu hết các bản cập nhật không cần khởi động lại hoặc chỉ khởi động lại dịch vụ (phù thủy nó sẽ tự động làm). - eXlin


Các câu trả lời:


Bạn có thể chỉ cần kiểm tra xem tệp /var/run/reboot-required tồn tại hay không.

Ví dụ, bất kỳ cái nào trong số này sẽ cho bạn biết "không có tệp đó" hoặc "tệp không tìm thấy" nếu bạn không cần khởi động lại, nếu không (nếu bạn cần khởi động lại), tệp sẽ tồn tại và các lệnh này sẽ hiển thị thông tin về tệp:

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

Trong tập lệnh bash, bạn có thể sử dụng:

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

257
2017-07-28 22:02



Điều này làm việc, và nó hoạt động trên Hardy quá. (Không hoạt động trên Dapper - 6.06 - mà tôi vẫn có trên một máy. Khó khăn.) Ngẫu nhiên, tệp / var / run / reboot-required được tạo bởi / usr / share / update-notifier / notify-reboot - yêu cầu được gọi từ các kịch bản lệnh duy trì của các gói khác nhau. - Marius Gedminas
Nó cũng sẽ hoạt động trên Dapper nếu tôi cài đặt gói thông báo cập nhật, ngoại trừ việc nó muốn giảm giá trị của GNOME 120 megs xuống máy chủ cũ của tôi. - Marius Gedminas
Tốt hơn cài đặt cập nhật-notifier-phổ biến, nó không phụ thuộc vào bất kỳ công cụ GUI (nhưng không tồn tại cho Dapper). - Marius Gedminas
FWIW, cập nhật-notifier-common không được cài đặt trên máy chủ Lucid theo mặc định. - Marius Gedminas
Cảm ơn! và tệp /var/run/reboot-required.pkgs sẽ liệt kê các gói yêu cầu khởi động lại. - nealmcb


Trong gói debian-goodies là một lệnh có tên checkrestart khá hữu ích. Đầu ra của nó có thể giúp bạn tránh được việc khởi động lại hoàn toàn.


39
2017-09-09 14:51



Làm cách nào để tôi có thể khởi động lại hoàn toàn? - Oxwivi
Nó cho bạn biết, các ứng dụng đang chạy nào đã tải các thư viện được chia sẻ đã được nâng cấp trong khi ứng dụng đang chạy. Sau đó, bạn khởi động lại ứng dụng và dịch vụ theo cách thủ công và tránh khởi động lại đầy đủ. Mặc dù vậy, không hỗ trợ nâng cấp hạt nhân. - aquaherd
Đây sẽ là câu trả lời hàng đầu. Rất hữu ích. OpenSUSE có một công cụ tích hợp (và cũng giúp bạn làm thế nào bạn có thể chạy nó). Xấu hổ Ubuntu chỉ cần "khởi động lại, khởi động lại". Ví dụ: colord cần khởi động lại ở đây. Do đó, không cần phải khởi động lại. - Shiki
@aquaherd Rất hữu ích bình luận - có thể là giá trị di chuyển đó vào câu trả lời của bạn? - Duncan Jones


Thông thường nếu tập tin

/var/run/reboot-required 

tồn tại bạn nên khởi động lại. Bạn có thể xem tệp này có bằng cách sử dụng lệnh đơn giản này trong gnome-terminal hay không.

ls /var/run/reboot-required

32
2017-07-28 21:59



Tệp này dường như không còn được tạo nữa từ trình thông báo cập nhật-thông thường được sử dụng để tạo tệp. - Scott


Cũng như các phương pháp trực tiếp nhất được viết bởi những người khác, có một chỉ dẫn hữu ích nếu bạn sử dụng byobu - một tập hợp các kịch bản để làm cho màn hình GNU thân thiện hơn một chút. Nó cho thấy một tập hợp các thông tin ở dưới cùng của màn hình, và có thể bao gồm việc khởi động lại được yêu cầu - cùng với việc có cập nhật hay không, thời gian, thời gian hoạt động, bộ nhớ được sử dụng ...

Trong ảnh chụp màn hình này, bạn có thể thấy từ 199! trên dòng dưới cùng với nền màu đỏ có sẵn 199 bản cập nhật và ! có nghĩa là một số là bản cập nhật bảo mật. Menu ở mặt trước đang chọn hiển thị thông báo trạng thái nào.

Nếu yêu cầu khởi động lại thì điều này sẽ được biểu thị bằng biểu tượng (R) được hiển thị ở thanh phía dưới có văn bản màu trắng trên nền màu xanh lam. Có thể đọc thêm chi tiết và các chỉ báo khác trong byobu man page.

byobu screenshot


17
2017-07-29 17:59





Các /etc/motd tập tin nhận được thông tin về việc có cần khởi động lại từ /var/run/reboot-required tập tin.

Bạn có thể kiểm tra nội dung của tệp này trong thiết bị đầu cuối bằng cách sử dụng cat /etc/motd chỉ huy


9
2017-07-28 21:53



update-notifier-common được sử dụng để tạo điều này nhưng không còn nữa - Scott


Tôi đã thêm thông tin sau vào tệp .bash-aliases của tôi:

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

Dường như đơn giản hơn việc cài đặt một gói cho nhiệm vụ tương đối đơn giản này. Sau đó, tôi chỉ cần chạy:

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

6
2017-12-16 13:22





Nếu bạn đã cài đặt gói thông báo khởi động lại trình thông báo hoặc cập nhật thông báo, bạn sẽ nhận được các tệp / var / run / reboot-required và /var/run/reboot-required.pkgs

-bộ thông báo khởi động lại là phiên bản mới hơn trong Ubuntu Wily và Xenial. Debian stretch, nhưng trong jessie-backports

cập nhật-notifier-common Là cũ hơn, trong tất cả các phiên bản Ubuntu bao gồm Xenial và Debian Wheezy. Không có trong Debian Stretch hoặc Jessie.

(Có một số nền cho gói khởi động lại trình thông báo tại https://feeding.cloud.geek.nz/posts/introducing-reboot-notifier/  )

Nếu bạn chưa cài đặt các gói này thì bạn có thể so sánh phiên bản của gói linux đã cài đặt, với phiên bản đang chạy:

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)

Bạn có thể thấy ở đây kernel mới nhất được cài đặt là 3.16.7-ckt20-1 + deb8u4 nhưng kernel chạy là 3.16.7-ckt20-1 + deb8u3. Vì vậy, hệ thống này cần khởi động lại. Các u4 vs u3 phải ở cuối.

Bạn có thể cần cuộn hộp ở trên. Trong phiên bản / proc /, nó là phiên bản gần cuối dòng quan trọng.

Sự thay đổi mã phiên bản rất nhỏ là điển hình của bản cập nhật hạt nhân bảo mật Debian.

cần thiết

Một tùy chọn khác là cài đặt needrestart gói.

sudo apt-get install needrestart
sudo needrestart -k

Có vẻ để làm việc ngay cả khi needrestart đã được cài đặt sau khi hạt nhân đã được nâng cấp.


5
2018-03-06 21:48



Đoạn đầu tiên của bạn tương quan với các phiên bản Ubuntu như thế nào? - muru
Điểm tốt. Cảm ơn. Tôi đã dành quá nhiều thời gian thử nghiệm và thử các gói mà tôi đã bỏ lỡ. Tôi đã chỉnh sửa để làm cho rõ ràng hơn và bao gồm thông tin gói ubuntu. - Tim Bray
Quay trở lại 8.04, sau khi cập nhật yêu cầu khởi động lại, Cog sẽ chuyển sang màu đỏ. Làm cách nào để nhận lại hành vi đó? - PenguinCSC
Ubuntu 14.04, tôi nhận được dpkg-query: no packages found matching linux-image-* - the_nuts
Unknown option: k trong Ubuntu 14.04. - Cees Timmerman


Không phải là câu trả lời cho câu hỏi, nhưng một lời nhắc nhở về một số câu trả lời: /var/run/reboot-required Là không phải một nguồn đáng tin cậy về việc có cần khởi động lại hay không.

Thử nghiệm đơn giản: khi một hạt nhân mới có sẵn, hãy cài đặt nó, khởi động lại. Sau khi khởi động lại, hãy chạy apt autoremove để loại bỏ một số hạt nhân cũ, không còn cần thiết nữa. Sau khi bạn đã chạy nó, nó sẽ nói rằng một khởi động lại là cần thiết, đó là hoàn thành vô nghĩa.


-1
2017-09-14 07:09



Vâng, loại bỏ một hạt nhân tái tạo tập tin cấu hình grub của bạn, sau đó nó có thể là một ý tưởng tốt để khởi động lại, để xác minh rằng bạn vẫn có thể khởi động. Ít nhất đó là cách tôi biện minh cho tính năng này (sai) cho bản thân mình. - Marius Gedminas