Linux

無法增加 ulimit -Hn,僅顯示 sudo su 會話

  • March 25, 2020

因此,我正在嘗試更改 Ubuntu18.04 筆記型電腦上文件描述符的硬限制。我已經嘗試了一切,但更改仍未生效。

我需要執行一個不斷拋出此錯誤的 go 程序。too many open files

/etc/security/limits.conf所以我根據這篇部落格文章對我的文件進行了一些更改https://medium.com/@muhammadtriwibowo/set-permanently-ulimit-n-open-files-in-ubuntu-4d61064429a

這些是內容limits.conf

* soft     nproc          65535    
* hard     nproc          65535   
* soft     nofile         65535   
* hard     nofile         65535
root soft     nproc          65535    
root hard     nproc          65535   
root soft     nofile         65535   
root hard     nofile         65535

而且我還更改了 /etc/pam.d/common-session 以添加行 session required pam_limits.so

我重新啟動終端並ulimit -Hn仍然顯示 4096 但是當我執行 sudo su 並執行相同的命令時它給了我 65535

但是由於我沒有在 su 會話中執行我的 go 程序,它仍然對我不起作用,我需要將我的實際硬限制更改為所有使用者的更高值,而不僅僅是超級使用者

我究竟做錯了什麼?

你很親密。

添加需要這些值的使用者名。您只是為 root 設置了限制,現在為您需要的使用者設置它。

您可以添加使用者組等。從 Redhat 站點:

       # vi /etc/security/limits.conf
   #<domain>        <type>  <item>  <value>

   *               -       core             <value>
   *               -       data             <value>
   *               -       priority         <value>
   *               -       fsize            <value>
   *               soft    sigpending       <value> eg:57344
   *               hard    sigpending       <value> eg:57444
   *               -       memlock          <value>
   *               -       nofile           <value> eg:1024
   *               -       msgqueue         <value> eg:819200
   *               -       locks            <value>
   *               soft    core             <value>
   *               hard    nofile           <value>
   @<group>        hard    nproc            <value>
   <user>          soft    nproc            <value>
   %<group>        hard    nproc            <value>
   <user>          hard    nproc            <value>
   @<group>        -       maxlogins        <value>
   <user>          hard    cpu              <value>
   <user>          soft    cpu              <value>
   <user>          hard    locks            <value>

<domain> can be:

a user name
a group name, with @group syntax
the wildcard *, for default entry
the wildcard %, can be also used with %group syntax, for maxlogin limit

在limits.conf 中設置使用者,註銷並重新登錄,看看是否有幫助。

joe soft     nproc          65535    
joe hard     nproc          65535   
joe soft     nofile         65535   
joe hard     nofile         65535

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