dnf update後にサービス再起動が必要か確認する Rocky ,Alma, CentOS

Linux

<景品表示法に基づく表記> 本サイトのコンテンツには、商品プロモーションが含まれている場合があります。

RHEL(Red Hat Enterprise Linux)系のLinuxで利用されているRPMパッケージをアップデートした後は、何も考えずサービス再起動を実施しています。ふと気になりました。

実際はサービスの再起動って必要なのか?

  • サービス再起動が必要か確認したい!
  • OSの状況を確認したい

Windows系OSの場合は、更新プログラムを適応すると再起動の有無をアラートで表示してくれます。同時にOS再起動の実施を確認してくれます。そう考えるとLinuxって気が利かない。

関連記事 dnf-automaticを使ってパッケージの自動アップデート Rocky ,Alma, CentOS

CentOS の代わりとなる「Rocky Linux (ロッキーリナックス)」と「AlmaLinux(アルマリナックス)」という2つの新しい Linux ディストリビューションが立ち上がりました。どちらも CentOS Linux の後継として RHEL(Red Hat Enterprise Linux)の完全クローンです。

サービス再起動が必要なプロセスを確認する

needs-restarting コマンドを利用して確認

dnf update」「yum update」でRPMパッケージのアップデートを実施しても、起動中のサービスは古いバージョンが動作し続けます。アップデート後のバージョンを動作させるにはサービスを再起動する必要があります。

needs-restarting」コマンドを利用すると、再起動が必要なサービスやOSの確認することができます。

needs-restarting コマンドを使う

needs-restarting のインストール

needs-restarting コマンドが利用できない場合は、yum-utils パッケージをインストールする必要があります。

RPMパッケージのアップデートに利用するコマンドは、yum から dnf にRHEL8から変更されています。Rocky Linux 9(AlmaLinux 9)でもパッケージ名は何故か「yum-utils」のままです。

早速、yum-utils パッケージをインストールします。

# dnf install yum-utils
# dnf install yum-utils
Last metadata expiration check: 2:39:35 ago on Tue 04 Apr 2023 03:00:56 PM JST.
Dependencies resolved.
================================================================================
 Package            Architecture    Version               Repository       Size
================================================================================
Installing:
 yum-utils          noarch          4.1.0-3.el9           baseos           36 k

Transaction Summary
================================================================================
Install  1 Package

Total download size: 36 k
Installed size: 23 k
Is this ok [y/N]: y
Downloading Packages:
yum-utils-4.1.0-3.el9.noarch.rpm                270 kB/s |  36 kB     00:00
--------------------------------------------------------------------------------
Total                                            55 kB/s |  36 kB     00:00
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                        1/1
  Installing       : yum-utils-4.1.0-3.el9.noarch                           1/1
  Running scriptlet: yum-utils-4.1.0-3.el9.noarch                           1/1
  Verifying        : yum-utils-4.1.0-3.el9.noarch                           1/1

Installed:
  yum-utils-4.1.0-3.el9.noarch

Complete!

yum-utils のRPMは、パッケージ単体のインストールで完了します。

RPMコマンドを利用して、パッケージ内容を確認します。

# rpm -ql yum-utils
/usr/bin/debuginfo-install
/usr/bin/find-repos-of-install 
/usr/bin/needs-restarting ← コマンドが同梱されている
/usr/bin/package-cleanup
/usr/bin/repo-graph
/usr/bin/repoclosure
/usr/bin/repodiff
/usr/bin/repomanage
/usr/bin/repoquery
/usr/bin/reposync
/usr/bin/repotrack
/usr/bin/yum-builddep
/usr/bin/yum-config-manager
/usr/bin/yum-debug-dump
/usr/bin/yum-debug-restore
/usr/bin/yum-groups-manager
/usr/bin/yumdownloader
/usr/libexec/dnf-utils
/usr/share/man/man1/debuginfo-install.1.gz
/usr/share/man/man1/dnf-utils.1.gz
/usr/share/man/man1/find-repos-of-install.1.gz
/usr/share/man/man1/needs-restarting.1.gz
/usr/share/man/man1/package-cleanup.1.gz
/usr/share/man/man1/repo-graph.1.gz
/usr/share/man/man1/repoclosure.1.gz
/usr/share/man/man1/repodiff.1.gz
/usr/share/man/man1/repomanage.1.gz
/usr/share/man/man1/repoquery.1.gz
/usr/share/man/man1/reposync.1.gz
/usr/share/man/man1/repotrack.1.gz
/usr/share/man/man1/yum-builddep.1.gz
/usr/share/man/man1/yum-config-manager.1.gz
/usr/share/man/man1/yum-debug-dump.1.gz
/usr/share/man/man1/yum-debug-restore.1.gz
/usr/share/man/man1/yum-groups-manager.1.gz
/usr/share/man/man1/yum-utils.1.gz
/usr/share/man/man1/yumdownloader.1.gz

needs-restarting コマンドがインストールされているのが確認できました。

サービスの再起動が必要か確認する

サービス再起動が必要かを確認するには needs-restarting コマンドに「-s」オプションをつけると、再起動の必要なサービスを確認することができます。

# needs-restarting -s
# needs-restarting -s
NetworkManager.service
tuned.service
irqbalance.service
auditd.service
systemd-journald.service
crond.service
[email protected]
polkit.service
[email protected]
systemd-logind.service
dbus.service
NetworkManager.service

再起動が必要なサービスがない場合は何も表示されません。

サーバーOSの再起動が必要か確認する

サーバーOSの再起動が必要かを確認するには needs-restarting コマンドに「-r」オプションをつけると、OS再起動を確認することができます。

# needs-restarting -r
# # needs-restarting -r
Core libraries or services have been updated since boot-up:
* dbus
* dbus-broker
* glibc
* kernel
* linux-firmware
* systemd

Reboot is required to fully utilize these updates.
More information: https://access.redhat.com/solutions/27943

再起動が必要ない場合は、必要ないと表示されます。

# # needs-restarting -r
No core libraries or services have been updated since boot-up.
Reboot should not be necessary.

あとがき

ピンポイントでパッケージをインストールする場合は、すぐにサービスを再起動する手順で実施しています。ただ、「dnf update」「yum update」のように全体的にバージョンアップする場合は必要なサービスが判らなくなってしまいます。

OS再起動が出来ない場合もあるので、対象サービスを確実にアップデートさせる場合にはneeds-restarting コマンドを実行し、対象を絞り込みサービスを再起動させます。