如何为启动时启动的服务设置 ulimit?

jay*_*oom 18 mysql automation linux ulimit chef

对于 mysql 使用大页面,我需要设置一个 ulimit - 我已经在limits.conf 中做到了这一点。但是,limits.conf (pam_limits.so) 不会为 init 读入,仅适用于“真实”shell。我之前通过向 initscript 启动函数添加“ulimit -l”解决了这个问题。我需要某种可重复的方法来做到这一点,现在这些盒子是由厨师管理的,我们不想接管实际上由 RPM 拥有的文件。

小智 7

$ echo "* hard nofile 102400" >> /etc/security/limits.conf
$ echo "* soft nofile 102400" >> /etc/security/limits.conf
$ sysctl -w fs.file-max=102400
$ sysctl -p
Run Code Online (Sandbox Code Playgroud)

这 4 个步骤可以立即更改您的系统限制,并且在您重新启动后仍然可以工作。您可以根据需要将数字“102400”更改为 linux 系统中的最大打开文件数。和

$ sysctl -p
Run Code Online (Sandbox Code Playgroud)

从指定的文件或 /etc/sysctl.conf 加载 sysctl 设置(如果没有给出)。

  • inittab 不会读取limits.conf,因为它不会读取limit.so。您也许能够破解 PAM,但我无法弄清楚它可能读取哪个文件。 (4认同)

小智 -1

尝试在 /etc/sysctl.conf 文件中进行设置