更新

更新

我的/etc/security/limits.conf

#<domain>   <type>  <item>         <value>
root        -       memlock     65536
root        -       stack       524288
root        -       nice        -20
root        -       nofile      16384

/usr/lib/xorg/Xorg然而,以 root 身份运行的进程仍然1024只有RLIMIT_NOFILE

cat /proc/$(pgrep Xorg)/limits | grep 'open file'
Max open files            1024                 4096                 files   

为什么我的设置/etc/security/limits.conf没有反映在 中Xorg?我可以在哪里增加限制/usr/lib/xorg/Xorg

我的系统是 Debian Buster,没有systemd(我正在使用sysvinit)。我正在使用slim作为登录管理器。所以我猜是的slim,那就启动了Xserver。以下是pam使用的模块slim

cat /etc/pam.d/slim
auth    requisite       pam_nologin.so
auth    required        pam_env.so readenv=1
auth    required        pam_env.so readenv=1 envfile=/etc/default/locale

@include common-auth
@include common-account

session required        pam_limits.so
session required        pam_loginuid.so

@include common-session
@include common-password

更新

受到建议的启发@ajgringo619,我添加了ulimit -n 16384/etc/init/slim.conf使用的配置脚本slim,因为它slim实际上是启动的xserver

起初看起来似乎解决了问题,添加ulimit -n 16384并重新启动 slim 后,新的 ulimit 生效。但问题是,重启后就不行了。我的意思是,我必须手动重新启动 slim 才能使新的 ulimit 生效。如果 slim 作为普通初始化脚本启动,它仍然具有旧的 ulimit 值1024

答案1

(更新以反映您的测试)

由于运行 Xorg 进程的用户实际上并未登录,因此您的设置/etc/security/limits.conf正在被忽视。使用sysvinit,您需要添加ulimit -n 16384到开头/etc/init.d/slim(在 antiX 19 上测试),而不是在slim.conf.

此修复的 systemd 版本也有效;在我的 Debian 10 VM 上进行了测试(添加模仿上述 ulimit 命令的配置设置)。

答案2

现在无法发表评论,所以在这里作为建议回答。

你可以试试:

root        soft       nofile      16333
root        hard       nofile      16888

确保relogin或 重新启动Xorg,然后检查:

cat /proc/$(pgrep Xorg)/limits | grep 'open file'

相关内容