我的/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'