Xorg

“Xorg”程序不接受 /etc/security/limits.conf 的限制

  • December 24, 2019

我有這個/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 Buster 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

(更新以反映您的測試)

由於執行 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'

引用自:https://unix.stackexchange.com/questions/558330