この質問はRedHat 7/8/9についてです。
ほとんどのアップデートを適用した後、影響を受けるサービスを再起動すれば十分です。
RedHatは、再起動する必要がある項目を正確に識別するための追跡ツールを提供します。次のような出力が生成されます。
You should restart:
* Some applications using:
systemctl restart chronyd
systemctl restart firewalld
systemctl restart mariadb
systemctl restart polkit
systemctl restart postfix
systemctl restart rngd
systemctl restart rsyslog
systemctl restart sshd
systemctl restart sssd
systemctl restart systemd-journald
systemctl restart systemd-logind
systemctl restart systemd-udevd
systemctl restart tuned
systemctl restart vmtoolsd
* These applications rebooting your computer:
dbus
kernel
systemd
私が理解したところ、カーネルアップデート(kspliceを除く)にのみ再起動が必要です。
再起動せずにsystemdとdbusを再起動する方法は?
私はすでに試しました。
systemctlデーモンが再実行されました。
PID-1 プロセスを再起動します。
ただし、追跡プログラムの後でも、-aはまだsystemdに「コンピュータを再起動する必要があります」と報告します。
dbusの場合、どこから探すべきかわかりません。
ベストアンサー1
systemctl daemon-reexec
systemd を再起動するコマンドです。しかし、PID 1がsystemdの唯一のインスタンスではないことに注意してください。対話型ログインセッションを持つ各ユーザーには、再起動に使用できる独自のユーザー固有のインスタンスもありますsystemctl --user daemon-reexec
。 (これらのインスタンスはuser@*.service
関連用語:「linger」で管理されています。)
もちろん技術的にdbus-daemonはsystemdによって管理されるユーザースペースサービスであるため、再起動なしで再起動できますdbus.service
。ただし、実際にはIPCバスへの接続が失われ、他の多くのサービスが予期せず終了する可能性があるため、実際にはお勧めできません。
追加のライブラリやモジュールを動的にロードしないため、古いバージョンのdbus-daemonを実行し続けることは通常安全です(必要なものはすべて起動時にld.soによってロードされます)。これに対してhttpdはするモジュールは動的にロードされるため、このような場合に競合が発生します。