“Xorg”程序不接受 /etc/security/limits.conf 的限制
我有這個
/etc/security/limits.conf
:#<domain> <type> <item> <value> root - memlock 65536 root - stack 524288 root - nice -20 root - nofile 16384
然而,以 root 身份執行的程序仍然
/usr/lib/xorg/Xorg
只有: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
?
systemd
我的系統是沒有(我正在使用)的 Debian Bustersysvinit
。我正在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
。
(更新以反映您的測試)
由於執行 Xorg 程序的使用者實際上並未登錄,因此您在**/etc/security/limits.conf中的設置將被忽略。使用 sysvinit,您需要將ulimit -n 16384**添加到
/etc/init.d/slim
(在 antiX 19 上測試)的開頭,而不是slim.conf
.此修復的 systemd 版本也有效;在我的 Debian 10 VM 上進行了測試(添加了一個模仿上述 ulimit 命令的配置設置)。
現在不能評論,所以在這裡回答作為一個建議。
你可以試試:
root soft nofile 16333 root hard nofile 16888
確保
relogin
或重新啟動Xorg
,然後檢查:cat /proc/$(pgrep Xorg)/limits | grep 'open file'