如何检查 RPM 包更新后是否需要服务重启或者服务器重启 (CentOS/RHEL/Fedora)

阅读这篇文章后,我们将知道在更新一个或者多个 RPM 包后需要重新启动哪些服务。
此外,我们将知道在更新一个或者多个 RPM 包后是否需要重新启动服务器。

检查是否需要重启服务器(CentOS/RHEL 7 及更高版本)

某些服务无法在不破坏服务器的情况下重新启动。
为了检查这些情况,CentOS/RHEL 7 及更高版本支持 -r 命令行开关:

# needs-restarting -r
Core libraries or services have been updated:
  dbus -> 1:1.10.24-7.0.1.el7

此命令形式的任何输出都表明建议重新启动系统。

需要重启 yum 实用程序

yum-utils 包中的 /sbin/needs-restarting 命令将运行进程的映射库与磁盘上的对应库进行比较,并列出内存中具有过时副本的进程。
该列表允许识别更新后需要重新启动的服务和进程。

请耐心等待

此处描述的 needs-restarting(1) 工具可能需要大量运行时间,因为它会检查许多服务和库关系。
但是,建议在任何 RPM 更新后运行需要重新启动工具,例如通过 rpm 或者 yum。

之路教程 https://onitr oad .com

检查服务重启

  1. 要查看在更新进程或者它们使用的某些组件之前开始运行的进程列表,请执行以下操作:
# needs-restarting
2438 : /usr/libexec/hald-addon-generic-backlight
2458 : hald-addon-storage: polling /dev/sr0 (every 2 sec)
2847 : xinetd-stayalive-pidfile/var/run/xinetd.pid
2457 : hald-addon-acpi: listening on acpid socket /var/run/acpid.socket
2452 : hald-addon-input: Listening on /dev/input/event7 /dev/input/event0 /dev/input/event2 /dev/input/event1
27729 : rpc.statd
24992 : /usr/sbin/named-unamed
1 : /sbin/init
972 : /usr/sbin/sshd
12560 : /sbin/udevd-d
2406 : hald-runner
2036 : rpcbind-w
#
  1. 在本例中,PID 972 (/usr/sbin/sshd) 需要重新启动。
    (pid=972) 需要重启,由sshd服务提供。
# needs-restarting | fgrep 972
972 : /usr/sbin/sshd
  1. 此可执行文件由 openssh-server RPM 包提供。
# rpm -qf /usr/sbin/sshd
openssh-server-5.3p1-123.el6_9.x86_64
# rpm -qf /usr/sbin/sshd -l | fgrep .serv
/usr/lib/systemd/system/sshd.service
...
  1. 因此重新启动 sshd 服务导致 /usr/sbin/sshd 从列表中删除。
# service sshd restart
stopping sshd [ OK ]
starting sshd [ OK ]
# needs-restarting | fgrep ssh

如果没有进程需要重新启动,则需要重新启动什么都不显示。
如果有显示但重新启动相关服务后仍无法删除,则系统需要重新启动操作系统。

日期:2020-09-17 00:13:01 来源:oir作者:oir