我时不时会收到此消息,当这种情况发生时,我无法启动应用程序。
我试过这些链接: 由于“已达到最大客户端数量”错误,无法启动应用程序和 我如何诊断/调试“已达到最大客户端数量”X 错误? 但我找不到合适的解决方案。
一些信息:运行lsof -U +c 15 | cut -f1 -d' ' | sort | uniq -c | sort -rn | head -15
结果是:
109 dbus-daemon
16 systemd
15 gnome-shell
12 ibus-daemon
11 xdg-desktop-por
11 nautilus
11 gnome-session-b
10 pulseaudio
10 gnome-software
9 x-terminal-emul
8 gsd-media-keys
7 update-notifier
7 gsd-xsettings
7 gsd-power
7 gsd-keyboard
这是当我只打开一个终端时的情况,nautilus 文件资源管理器、chrome(7 个选项卡)和 blender。
我的主要怀疑是dbus-daemon
。
我的问题:
- 我怎样才能诊断出导致 dbus 出现这种行为的原因?
- 有没有办法增加限制?我有一台相当强大的机器,而且……
- 该怎么办?我应该朝不同的方向搜索吗?
编辑:运行后uname -s -v -i -o
我得到:Linux #52~18.04.1-Ubuntu SMP Thu Sep 10 12:50:22 UTC 2020 x86_64 GNU/Linux
答案1
我认为这与您的软件版本无关,因为我在 Lubuntu 20.04 上遇到了同样的问题。
我认为我找到了解决“最大客户数量已达到”问题的方向https://unix.stackexchange.com/questions/498652/does-x-window-have-a-maximum-number-limit-on-clients。
简而言之,我做了以下事情:
通过下一个命令查找可能的最大 maxclients 数量:
/usr/lib/xorg/Xorg -maxclients 1000000000
在我的情况下,最大 maxclients 是 2048(必须是 2 的幂,所以是 128、256 等)
由于文件系统安全,下一个命令需要以 root 身份执行:
sudo -i
printf 'Section "ServerFlags"\n\tOption "MaxClients" "512"\nEndSection\n' > /etc/X11/xorg.conf.d/99-maxclients.conf
exit
我安装了一个工具来监控X相关的东西:
sudo apt-get install xrestop
我还在 ~/.bashrc 末尾添加了接下来的 3 行:
function watchlsof { watch "lsof -U +c 15 | cut -f1 -d' ' | sort | uniq -c | sort -rn | head -15" ; }
export -f watchlsof
echo "Use 'typeset -f | -F' to list functions"
因此,现在我可以使用 watchlsof 和 xrestop 命令进行监控,以后可能会将 99-maxclients.conf 中的值增加到 1024 或最高值 2048
我希望这有帮助