Linuxで再起動できない「Operation inhibited by "RPM"~」
CUI操作じゃなくてCockpitでの操作で以下の作業を実施すると再起動できなかった話です
- Cockpitでソフトウェアの更新をおこなった
- 再起動を実施するように促されたので再起動の指示をおこなった
- 再起動をかからないので、「reboot」コマンド実行したら以下のエラーで再起動がかからない
# reboot Operation inhibited by "RPM" (PID 241425 "dnf-automatic", user root), reason is "Transaction running". Please retry operation after closing inhibitors and logging out other users. 'systemd-inhibit' can be used to list active inhibitors. Alternatively, ignore inhibitors and users with 'systemctl reboot -i'.
エラーの意味ですが、以下になります
このエラーは、「システムの裏側でアップデート処理が動いているため、安全のために再起動を一時的に禁止(ブロック)した」という意味です。
dnf-automatic というツールが自動でパッケージの更新作業(インストールやダウンロード)を行っている最中のため、このタイミングで強制的に再起動するとシステムが壊れてしまう危険性があります。そのため、システム管理の仕組み(systemd)がストップをかけてくれています。
dnf-automatic のアップデートが終了するのを待って再起動すれば良いって事です
アップデートが走っているかはsystemd-inhibit のコマンドで確認できるので、下記のようにアップデートに関する処理が表示されていない場合はアップデート処理は終了しているので、再起動が可能です
# systemd-inhibit WHO UID USER PID COMM WHAT WHY MODE NetworkManager 0 root 953 NetworkManager sleep NetworkManager needs to turn off networks delay 1 inhibitors listed.
【注意】どうしても今すぐ強制再起動したい場合
エラーメッセージの最後に書いてある通り、ブロックを無視して強制的に再起動するコマンドもあります。
# systemctl reboot -i
注意: パッケージの更新(Transaction)が途中で強制終了されるため、システムが起動しなくなったり、パッケージが破損したりするリスクがあります。サーバーがフリーズしていてどうしようもない場合などを除き、基本的には処理が終わるのを待つことを強くおすすめします

