PolicyKit が起動せず、polkit.service: main process exited, code=exited, status=1/FAILURE エラーが発生する
Environment
- Red Hat Enterprise Linux 7
Issue
-
dbus でコマンドが失敗するか (10 分後に) タイムアウトになり、以下のような polkit / PolicyKit エラーが発生します。
dbus-daemon: dbus[996]:[system] Activating via systemd: service name='org.freedesktop.PolicyKit1' unit='polkit.service' dbus[996]:[system] Activating via systemd: service name='org.freedesktop.PolicyKit1' unit='polkit.service' systemd:Starting Authorization Manager... systemd: polkit.service: main process exited, code=exited, status=1/FAILURE systemd:Failed to start Authorization Manager. systemd:Unit polkit.service entered failed state. dbus-daemon: dbus[996]:[system] Failed to activate service 'org.freedesktop.PolicyKit1': timed out dbus[996]:[system] Failed to activate service 'org.freedesktop.PolicyKit1': timed out
Resolution
-
polkitd
システムユーザーとグループが存在することを確認します。
確認のために、以下の 2 つの複合コマンドを root の端末にコピーアンドペーストし、ユーザーおよびグループを条件付きで作成します。getent group polkitd >/dev/null && echo -e "\e[1;32mpolkitd group already exists\e[0m" || { groupadd -r polkitd && echo -e "\e[1;33mAdded missing polkitd group\e[0m" || echo -e "\e[1;31mAdding polkitd group FAILED\e[0m"; } getent passwd polkitd >/dev/null && echo -e "\e[1;32mpolkitd user already exists\e[0m" || { useradd -r -g polkitd -d / -s /sbin/nologin -c "User for polkitd" polkitd && echo -e "\e[1;33mAdded missing polkitd user\e[0m" || echo -e "\e[1;31mAdding polkitd user FAILED\e[0m"; }
-
polkit
パッケージとpolkit-pkla-compat
パッケージが提供するすべてのファイルのユーザーおよびグループの所有者と、アクセス権を再設定します。
確認のために、以下の複合コマンドを root の端末にコピーアンドペーストし、ユーザーおよびグループのアクセス権と所有者を条件付きで作成します。rpm -Va polkit\* && echo -e "\e[1;32mpolkit* rpm verification passed\e[0m" || { echo -e "\e[1;33mResetting polkit* rpm user/group ownership & perms\e[0m"; rpm --setugids polkit polkit-pkla-compat; rpm --setperms polkit polkit-pkla-compat; }
-
失敗したユニットの一覧を取得します。
ここでは、通常、わずかな数しか確認できません (一般的なものはたとえばrngd
、rhnsd
)systemctl --failed
-
dbus.service
を再起動します。systemctl restart dbus
-
失敗したユニットの一覧を再確認し、表示されている新しいエントリーを再起動します。
おそらく、firewalld.service
とtuned.service
がそのエントリーになります。
失敗したと表示されたすべてを再起動しても問題はありません。systemctl --failed systemctl restart firewalld tuned
-
問題が続く場合はサポートケースを作成します。
This solution is part of Red Hat’s fast-track publication program, providing a huge library of solutions that Red Hat engineers have created while supporting our customers. To give you the knowledge you need the instant it becomes available, these articles may be presented in a raw and unedited form.
Comments