centos7.2中启动polkit服务启动失败

1. 错误表现
在centos7.2系统中重启服务的时候报错:

Error getting authority:Eroor initializing authority:Error calling StartServiceByName for org.freedesktop.PolicyKit1:Timeout was readhed(g-io-error-quark, 24)  

Failed to restart network.service: Connection timed out

使用journalctl查看详细信息的时候会报如下错误:

[system] Failed to activate service ‘org.freedesktop.PolicyKit1’: timed out

2. 错误原因
这个是一个和polkit.service相关问题。检查polkit服务的时候发现服务停止而且同样的,尝试开启这个服务的时候报错:
当使用daemon-reload或者使用restart指令来重新加载启动polkit服务的时候,竞态条件会优先序列将会发生改变,与此同时systemctl status将会立马报告polkit卡在了启动状态。但是polkit进程实际上是在运行的,系统只是简单地忽略掉了bus属主的改变。($busctl 查看)。

3. 解决办法:

  1. 确认是否由polkitd的用户存在.
  2. 可以使用polkitd来调试错误,直接运行:
    /usr/lib/plokit-1/plokitd
  3. 重新安装polkit的包然后重启服务.
    在使用systemd 225的时候会有这类错误异常bug,但是到systemd 229的时候修复了。错误原因是当systemd 启动了这个服务的时候policykit-1的postinst杀掉了polkit的守护进程。在RHEL,CentOS,ubuntu,debain系统上均可以看到相关bug报告反馈。

4.相关链接

1.可观察到bug反馈:
Bug #1447654 “installing policykit-1 hangs under systemd” : Bugs : policykit-1 package : Ubuntu
https://github.com/coreos/bugs/issues/462

2.redhat对此问题的解决方案
PolicyKit failing to start with error: polkit.service: main process exited, code=exited, status=1/FAILURE - Red Hat Customer Portal

3.国外stackexchange问答网站上给出的一些解释
centos - systemctl keeps timing out on service restart - Unix & Linux Stack Exchange

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐