我正在尝试yum update
在 RHEL 7.4 之后重新启动服务。我可以使用 systemctl 重新启动每个服务,但是needs-restarting
fromyum utils
告诉我我还应该重新启动 systemd 本身:
# needs-restarting
1 : /usr/lib/systemd/systemd --system --deserialize 21
我可以systemd
在不重新启动服务器的情况下重新启动吗?如何?
我发现了一些提及systemctl daemon-reload
,但这并没有使它从需要重新启动列表中消失。
要重新启动守护程序,请运行
这记录在手册
systemctl
页中:不幸的是
needs-restarting
无法确定systemd
实际上已经重新启动。systemd
execs
自己重新启动,这不会重置进程的开始时间;但是needs-restarting
将可执行文件的修改时间与进程的启动时间进行比较,以确定进程是否需要重新启动(除其他外),因此它始终认为systemd
需要重新启动......以确定是否systemd
真的需要重新启动,您可以检查lsof -p1 | grep deleted
:systemd
使用库的输出,该库libsystemd-shared
在同一个包中提供,因此与守护程序一起升级,因此如果systemd
需要重新启动,您将使用已删除的库版本看到它。如果lsof
显示没有删除文件,systemd
则不需要重新启动。(谢谢Jeff Schaller的提示!)就我而言,我刚刚升级
systemd
并且任何systemctl
命令都失败了:但是,根据
init
手册页,您可以通过发送SIGTERM
到以 PID 1 运行的守护程序来执行相同的操作,这有效:这重新加载了守护进程,之后所有
systemctl
命令再次开始工作。