我的台式电脑还用作小型工作组的 NIS/NFS 服务器。它可以运行几个月而无需重新启动。
最近,我观察到,当我登录桌面会话时,计算机的响应速度会降低几分钟。polkitd
处于某种状态的进程会D
生成大量磁盘 I/O 活动。其 VmSize 超过 600MB,VmRSS 超过 400MB。
该机器仍然使用带有 polkit 0.96 的 OpenSUSE 11.3。我计划在夏天升级。
polkitd 中有一些内存泄漏的报告,这些报告已在 0.98 中修复(自由桌面网站,opensuse.org)。虽然升级可能会解决问题,但需要大约一天的时间,我正在寻找快速解决方案。
/etc/init.d 中没有 polkitd 脚本,polkitd 进程的父进程就是init
它本身。
PID PPID USER CMD
....
22362 1 root /usr/lib/polkit-1/polkitd
问题:如何在不重新启动系统的情况下重新启动 polkitd?我可以在桌面会话中执行此操作,还是应该注销桌面会话并登录到文本控制台?
答案1
polkitd 的手册页显示:
...用户或管理员永远不需要启动此守护进程,因为它将由 dbus-daemon(1) 自动启动...
dbus
因此,当服务重新启动时,polkitd 也会重新启动。由于此服务与桌面管理器交互,因此注销桌面会话、停止xdm
服务、重新启动dbus
并再次启动会更安全xdm
。
答案2
你应该运行:
invoke-rc.d dbus restart
作为根。
答案3
使用 systemd 时,重新启动 polkit 非常简单:sudo systemctl restart polkitd.service
答案4
在终端中运行:
killall -HUP polkitd