xdd*_*dsg 67
https://access.redhat.com/discussions/3106621#comment-1196821
不要忘记,由于核心库更新,您可能需要重新启动,至少如果它是 glibc。(而且,更新后可能需要重新启动服务)。
如果安装该
yum-utils软件包,则可以使用名为needs-restarting.您可以使用它来检查是否由于内核或核心库更新(使用该
-r选项)而需要完全重新启动,或者需要重新启动哪些服务(使用该-s选项)。
needs-restarting -r0如果不需要重新启动,则返回,如果需要,1则非常适合在脚本中使用。一个例子:
root@server1:~> needs-restarting -r ; echo $?
Core libraries or services have been updated:
openssl-libs -> 1:1.0.1e-60.el7_3.1
systemd -> 219-30.el7_3.9
Reboot is required to ensure that your system benefits from these updates.
More information:
https://access.redhat.com/solutions/27943
1
Run Code Online (Sandbox Code Playgroud)
ale*_*exm 37
关于将已安装的内核与正在运行的内核进行比较:
#!/bin/bash
LAST_KERNEL=$(rpm -q --last kernel | perl -pe 's/^kernel-(\S+).*/$1/' | head -1)
CURRENT_KERNEL=$(uname -r)
test $LAST_KERNEL = $CURRENT_KERNEL || echo REBOOT
Run Code Online (Sandbox Code Playgroud)
希望有帮助!
小智 7
在“是否需要重新启动”方面可以帮助查看的一件事是是否有任何文件已被更新删除/替换,但活动进程仍加载/使用旧文件。
基本上,当 YUM 更新进程正在使用的文件时,文件本身可能已被标记为删除,但进程继续使用旧文件,因为它具有旧文件 inode 的打开文件描述符。
获取仍在使用的旧文件数量的命令:
#lsof | grep "(path inode=.*)" | wc -l
Run Code Online (Sandbox Code Playgroud)
该命令将为您提供文件计数。
使用它来查看实际使用的文件:
#lsof | grep "(path inode=.*)"
Run Code Online (Sandbox Code Playgroud)
该命令将在 YUM 更新的框中生成类似于以下内容的输出:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
sshd 3782 root mem REG 8,17 153427 /lib64/libcrypto.so.0.9.8e (path inode=153253)
mysqld 3883 mysql mem REG 8,17 153259 /lib64/libcrypt-2.5.so (path inode=153402)
mingetty 4107 root mem REG 8,17 153243 /lib64/libc-2.5.so (path inode=153222)
...
etc
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
83850 次 |
| 最近记录: |