如何确定我的Ubuntu/Debian Linux服务器是否需要重启

时间:2020-01-09 10:39:12  来源:igfitidea点击:

我使用ansible-playbook更新托管在远程数据中心中的VM和裸机服务器。
我如何确定Ubuntu或Debian Linux服务器是否需要通过基于ssh的会话使用命令行重启?
安装新内核或更新关键库(例如libc)时,必须重新引导Linux机器。
当您以root用户身份登录到Box时,Debian和Ubuntu Linux都可以告诉您系统是否需要重启。

找出我的Ubuntu/Debian Linux服务器是否需要重启

要了解您的Debian或Ubuntu云VM/VPS是否需要重启,请使用以下命令。
直接登录如下:

$ ssh [email protected]

或者

$ ssh [email protected]
$ sudo -i

如果文件/var/run/reboot-required存在,则会收到上述消息。
您可以通过输入cat命令自己检查它:

$ cat /var/run/reboot-required

输出示例:

*** System restart required ***

可以在shell启动文件中放入某种代码,例如~/.bashrc:

[ -f /var/run/reboot-required ] && cat /var/run/reboot-required

或在脚本或启动文件中使用if命令:

if [ -f /var/run/reboot-required ] 
then
    echo "[*** Hello $USER, you must reboot your machine ***]"
fi

您必须使用reboot命令重新引导Linux服务器/桌面:

$ sudo reboot

或者

$ sudo shutdown -r now

此方法似乎仅在Ubuntu Linux上有效。

库升级后,如何使用needrestart-session命令检查需要重新启动哪些守护程序

needrestart-session命令检查是否需要在用户会话中重新启动进程。
您可以从上游获取它,也可以使用apt-get命令/apt命令安装它:

$ sudo apt-get install needrestart

您可以按以下方式运行它:

$ sudo needrestart

如何使用checkrestart命令检查升级后需要重新启动哪些进程

您必须安装debian-goodies软件包:

$ sudo apt-get install debian-goodies

安装完成后,运行run checkrestart命令来检查升级后需要重新启动哪些进程:

$ sudo checkrestart

检查内核和libc

您可以手动检查已安装/更新的软件包日志:

$ grep installed /var/log/dpkg.log
$ grep upgrade /var/log/dpkg.log
$ tail -f /var/log/apt/history.log

或者

$ grep libc /var/log/dpkg.log

或使用以下grep命令查找是否最近安装了libc/linux-image(内核):

$ grep -B1 libc /var/log/apt/history.log
$ grep -B1 linux-image /var/log/apt/history.log