Windows Updateの後は再起動が必要だと表示されるのに対して、AlmaLinuxなどのLinux系のOSを使用していると、パッケージのアップデートや更新後に、再起動が必要かどうか判断に迷うことがあると思います。ここではneeds-restartingというパッケージを使用して、再起動が必要かどうかを調査した結果をお知らせします。
結論から、再起動はしておいた方が安心
先に結論を述べますと、パッケージアップデート後に再起動はしておいた方が安心です。needs-restartingというパッケージを使用して検証した結果はこの後記載しますが、その結果から再起動は必要だということがわかりました。
apacheやbindなどインターネットからアクセスされるようなパッケージのアップデートがなされた後は、自動でサービスの再起動はされます。しかしながら、OSの主要なライブラリなどがアップデートされた場合は、apacheやbindなどの再起動は実施されません。
正直この場合、どこまで影響があるのかはわからず、もしかしたらそのまま(再起動なし)でも問題はないのかもしれません。しかし、1度再起動すればこの不安から解消されることを考えると、OSから再起動はしておいた方が安心、という結論に至っております。
それでは、以下、needs-restartingコマンドを使用した調査をしていきます。
needs-restartingに関するパッケージのインストール
まず、以下のコマンドを実行して yum-utils をインストールします。こちらに含まれている、needs-restarting コマンドが今回の主役です。
# dnf install yum-utils
needs-restarting を実行して再起動の要否を確認する
needs-restarting を実行して再起動の要否を確認するには、-s オプションを付与して実行します。こちらのオプションを付与することで、再起動が必要なものをサービス名で提示してくれます。
# needs-restarting -s
サービスのアップデート時の再起動の要否について
dnf updateを実行した後に、上記のneeds-restartingコマンドを-sオプション付きで実行すると、アップデート時に自動で再起動されたサービスについては表示されませんでした。しかし、ライブラリを使用(参照)していると思われるサービスが表示されておりました。このサービスは、今回アップデートがされていませんが、要再起動として判断されていました。
具体的には、apacheのサービスはアップデートがあったので、表示されませんでしたが、postfixのサービスは表示されておりました。私がdnf updateを実施した際は、openssl関連のパッケージがアップデートされていたので、これを使用しているpostfixのサービスがneeds-restartingにより検出された形となります。
kernel のアップデート時の再起動の要否について
AlmaLinuxは、kernelをアップデートした際に、再起動しなくても有効になる、という情報があったので本当かどうかを試してみました。
Kernelのアップデートは、dnf-automatic を使用して自動でアップデートしました。
(dnf-automaticを使用する必要はありません。今回たまたまdnf-automaticで自動アップデートされた後でした)
Kernelのバージョンを確認すると、動いているバージョンと、インストールされているバージョンが異なっていることを確認しました。(要は、OSの再起動がまだされていない)
そのうえで、needs-restarting を実行すると、いろいろなサービスが出てきました。具体的には、postfixやdovecot、cronなどです。上述のとおり、ライブラリ関連がアップデートされると、サービスのアップデートはされていなくても、要再起動として検出されることがわかります。
ここで、試しにpostfixのサービスの再起動を実施した後に、needs-restarting を再度実行すると、要再起動リストに表示されなくなりました。
特に、kernelという文言はなかったのですが、たくさんのサービスが表示されましたので、OSを再起動しました。再起動後needs-restarting を実行すると、要再起動として表示されるものがありませんでした。またkernelのバージョンもインストールされているパッケージのバージョンに一致しました。
これより、Kernelをアップデートすると、ひとつづつサービスを再起動することで対応は可能かもしれませんが、OSを再起動した方が早いし確実である、ということがわかります。
判断に迷うなら、サービスの停止の時間を確保して再起動がおすすめです。
なかなか再起動ができないシステムの場合は、設計段階から冗長構成にして、
1台ずつ再起動できるような環境を構築しましょう!
パッチ適用後の再起動の要否に関するまとめ
パッケージのアップデート後は再起動が必要です。自動で再起動されるものもありますが、定期的にOSの再起動は実施した方が良いと考えます。
皆様におかれましては、わざわざneeds-restarting をサーバにインストールして、こちらを使用して要再起動かどうかを都度確認する必要は無いと思います。インストールする手間や確認する手間を考えると無駄な作業で、パッケージがアップデートされた後やパッチを適用した後は、OSを再起動するものだと考えておいた方が良いです。
ご参考までに、私が得たAlmaLinuxは再起動しなくてよい、というものは、サイバートラスト社の「Linux ライブパッチサービス」で、メモリー上にロードした処理を実行する際にパッチで修正済みの処理を実行する形で再起動なしで適用可能になっているとの事です。今後無償でも利用できるようになり、再起動しなくてもアップデートできるのが普通になって欲しいですね。
今回はここまでです。最後までお読みいただきありがとうございました。