RedHat:再起動せずにsystemdとdbusを更新する方法は?

RedHat:再起動せずにsystemdとdbusを更新する方法は?

この質問は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-reexecsystemd を再起動するコマンドです。しかし、PID 1がsystemdの唯一のインスタンスではないことに注意してください。対話型ログインセッションを持つ各ユーザーには、再起動に使用できる独自のユーザー固有のインスタンスもありますsystemctl --user daemon-reexec。 (これらのインスタンスはuser@*.service関連用語:「linger」で管理されています。)

もちろん技術的にdbus-daemonはsystemdによって管理されるユーザースペースサービスであるため、再起動なしで再起動できますdbus.service。ただし、実際にはIPCバスへの接続が失われ、他の多くのサービスが予期せず終了する可能性があるため、実際にはお勧めできません。

追加のライブラリやモジュールを動的にロードしないため、古いバージョンのdbus-daemonを実行し続けることは通常安全です(必要なものはすべて起動時にld.soによってロードされます)。これに対してhttpdはするモジュールは動的にロードされるため、このような場合に競合が発生します。

おすすめ記事